C#:“函数”没有重载匹配委托 System.Threading.WaitCallBack
Posted
技术标签:
【中文标题】C#:“函数”没有重载匹配委托 System.Threading.WaitCallBack【英文标题】:C#: No overload for 'function' matches delegate System.Threading.WaitCallBack 【发布时间】:2019-03-24 21:29:46 【问题描述】:所以我最近一直在使用线程,错误(C#:'Generic_Function' 没有重载与委托 System.Threading.WaitCallBack 匹配)让我有点困惑。
起初我认为必须传递一个参数,然后我了解到它很容易为空。
ThreadPool.QueueUserWorkItem(new WaitCallback(Generic_Function), null);
不应将函数定义为:
void Generic_Function()
//Code here
但是,我遇到了一个错误。我在这里遗漏了一些东西,我很困惑。我试过阅读文档,但我想我没有完全理解这一点。如果有人可以解释,我将不胜感激。非常感谢!
【问题讨论】:
【参考方案1】:根据documentation,WaitCallback 是这样定义的:
public delegate void WaitCallback(object state);
因此,如果您希望代码正常工作,您可以进行此修改:
void Generic_Function(object state)
//Code here
【讨论】:
【参考方案2】:如果由于某些原因您无法更改 Generic_Function
签名,您可以使用 lambda 封装调用:
ThreadPool.QueueUserWorkItem(_ => Generic_Function());
【讨论】:
以上是关于C#:“函数”没有重载匹配委托 System.Threading.WaitCallBack的主要内容,如果未能解决你的问题,请参考以下文章