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#Code中我想开始一个新线程。但我想保留将在新线程中执行的代码与启动线程的方法相同,因为我认为它是更易读的代码。就像上面的Java示例一样。
C#中的等效代码如何?
答案 0 :(得分:17)
您可以使用a 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);
答案 1 :(得分:14)
您可以使用Lambda Expression或Anonymous Method:
Thread t = new Thread(() => /* Code to execute */);
t.Start();