ThreadStart返回值?

big*_*gtv 2 c# multithreading

我正在重构一些遗留代码,并且更新了下面 ThreadStart 语句中使用的 Task.Execute 方法,以便在另一个上下文中使用。但是现在它会导致编译错误,指出 Task.Execute 有错误的返回类型。

这是为什么?我该如何解决它,以便既能保留返回值,又能保留 ThreadStart?

ThreadStart start = new ThreadStart(Task.Execute);
Thread asyncThread = new Thread(start);
asyncThread.IsBackground = true;
asyncThread.Start();
Run Code Online (Sandbox Code Playgroud)

Tho*_*que 5

的返回类型ThreadStartvoid,因此您必须传递一个返回的方法void。如果Task.Execute是非 void,则可以使用 lambda 表达式:

ThreadStart start = new ThreadStart(() => Task.Execute());
Run Code Online (Sandbox Code Playgroud)