C# 中是否有与此 Java 代码等效的代码
本文关键字:代码 Java 是否 | 更新日期: 2023-09-27 18:21:40
public class ThreadTest {
public static void main(String[] args) {
Runnable runnable = new Runnable(){
@Override
public void run(){
//Code to execute on thread.start();
}};
Thread thread = new Thread(runnable);
thread.start();
}
}
在 C# 代码中,我想启动一个新线程。但是我想将将在新线程中执行的代码保留在启动线程的相同方法中,因为我认为它是更具可读性的代码。就像上面的 Java 示例一样。
C# 中的等效代码将是什么样子的?
您可以使用
Task
来实现此目的:
public class ThreadTest {
public static void Main(string[] args)
{
Task task = new Task(() => ... // Code to run here);
task.Start();
}
}
正如@JonSkeet所指出的,如果你不需要分开创建和调度,你可以使用:
Task task = Task.Factory.StartNew(() => ... // Code to run here);
或在 .Net 4.5+ 中:
Task task = Task.Run(() => ... // Code to run here);
您可以使用
Lambda 表达式或匿名方法:
Thread t = new Thread(() => /* Code to execute */);
t.Start();