我想在新线程中以void
作为返回类型运行函数,但它总是显示此错误:
'myVoid'没有重载匹配委托'ThreadStart'
和我的代码:
Thread t = new Thread(new ThreadStart(myVoid)); // <-- Error Shows Here
t.Start("Test","Test2");
// And The Void :
void myVoid(string text, string text2)
{
Console.WriteLine(text + text2);
}
我是如何解决的?有什么问题?
答案 0 :(得分:3)
ThreadStart
委托期望一个不带参数的委托。如果您想在一个线程中使用myVoid
,您需要提供一种在myVoid
和无参数委托之间进行匹配的方法。
这样做的一种方法是提供 lambda ,如下所示:
Thread t = new Thread(new ThreadStart(() => myVoid("Test", "Test2")));
t.Start();
答案 1 :(得分:1)
您使用的ThreadStart delegate未定义任何参数。
这意味着您的方法myVoid
有2个字符串参数与委托不匹配。