C#Thread.Start生命周期

时间:2013-05-17 17:01:45

标签: multithreading c#-4.0

当我使用Thread.Start时,我对线程的生命周期有疑问,例如,如果像这样做一个foreach循环:

foreach(var item in MyList)
{
  var t = new Thread(ProcessRequest);
  t.Start(item);
}

private void ProcessRequest(ListItem item)
{
   //do something
}

在这种情况下,它将存在N个线程,那么所有这些的生命周期是什么?

我将非常感谢您的解释

1 个答案:

答案 0 :(得分:1)

每个线程都存在,直到ProcessRequest完成。一旦该方法返回,线程就会返回到线程池中再次使用。

即使您没有维护对线程对象的引用,它也会被框架和操作系统引用,因此在线程完成运行之前,它不会被释放。