如何在for循环中的任务中运行方法并只创建一个线程?

时间:2015-06-03 13:48:57

标签: c# asp.net multithreading task

for(i=0,i<1000,i++){ 
   //method1 or
   Task.Run(()=> MyTask()) 
   //method2 
   Task.Factory.StartNew(MyTask) 
} // sample code

我希望MyTask运行1000次,但我不想创建1000个线程。

我只想要一个线程,如何通过更改示例代码来实现这一目标?

1 个答案:

答案 0 :(得分:3)

将循环移动到MyTask或将其包装在执行循环的另一个方法中:

Task.Run(() => My1000Tasks());

private void My1000Tasks()
{
    for (int i = 0; i < 1000;i++)
        MyTask();
}