没有重载'void'匹配委托'ThreadStart'

时间:2015-12-28 18:14:56

标签: c#

我想在新线程中以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);
}

我是如何解决的?有什么问题?

2 个答案:

答案 0 :(得分:3)

ThreadStart委托期望一个不带参数的委托。如果您想在一个线程中使用myVoid,您需要提供一种在myVoid和无参数委托之间进行匹配的方法。

这样做的一种方法是提供 lambda ,如下所示:

Thread t = new Thread(new ThreadStart(() => myVoid("Test", "Test2")));
t.Start();

答案 1 :(得分:1)

您使用的ThreadStart delegate未定义任何参数。

这意味着您的方法myVoid有2个字符串参数与委托不匹配。