我正在重构一些遗留代码,并且更新了下面 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)
的返回类型ThreadStart是void,因此您必须传递一个返回的方法void。如果Task.Execute是非 void,则可以使用 lambda 表达式:
ThreadStart start = new ThreadStart(() => Task.Execute());
Run Code Online (Sandbox Code Playgroud)