没有过载';void';匹配委托';ThreadStart';

本文关键字:ThreadStart void 没有过 | 更新日期: 2023-09-27 18:28:27

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

我该怎么修?怎么了?

没有过载';void';匹配委托';ThreadStart';

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

一种方法是提供lambda,如下所示:

Thread t = new Thread(new ThreadStart(() => myVoid("Test", "Test2")));
t.Start();
您正在使用的ThreadStart委托没有定义任何参数。

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