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());
所以我最近一直在使用线程,错误(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());