C#:'function'没有重载匹配委托System.Threading.WaitCallBack

问题描述 投票:0回答:2

所以我最近一直在使用线程并且错误(C#:'Generic_Function'没有重载匹配委托System.Threading.WaitCallBack)让我感到困惑。

起初我以为必须传递参数,然后我才知道它很容易为空。

ThreadPool.QueueUserWorkItem(new WaitCallback(Generic_Function), null);

不应该是函数,然后定义为:

void Generic_Function(){
 //Code here
}

但是,我收到了一个错误。我在这里错过了什么,我很难过。我已经尝试过阅读文档,但我想我并没有完全理解它。如果有人能解释,我会很感激。非常感谢!

c# multithreading delegates overloading threadpool
2个回答
1
投票

根据documentation,WaitCallback定义如下:

public delegate void WaitCallback(object state);

因此,如果您希望代码能够正常工作,则可以进行此修改:

void Generic_Function(object state)
{
    //Code here
}

0
投票

如果由于某些原因你无法改变Generic_Function签名,你可以用lambda打包一个调用:

ThreadPool.QueueUserWorkItem(_ => Generic_Function());
© www.soinside.com 2019 - 2024. All rights reserved.