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

C#: No overload for 'function' matches delegate System.Threading.WaitCallBack

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

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

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

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

void Generic_Function(){
 //Code here
}

但是,我遇到了一个错误。我在这里遗漏了一些东西,我很困惑。我试过阅读文档,但我想我没有完全理解这一点。如果有人可以解释,我将不胜感激。非常感谢!

根据documentation,WaitCallback 的定义如下:

public delegate void WaitCallback(object state);

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

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

如果由于某些原因您无法更改 Generic_Function 签名,您可以使用 lambda 封装调用:

ThreadPool.QueueUserWorkItem(_ => Generic_Function());