当我使用Thread.Start时,我对线程的生命周期有疑问,例如,如果像这样做一个foreach循环:
foreach(var item in MyList)
{
var t = new Thread(ProcessRequest);
t.Start(item);
}
private void ProcessRequest(ListItem item)
{
//do something
}
在这种情况下,它将存在N个线程,那么所有这些的生命周期是什么?
我将非常感谢您的解释
答案 0 :(得分:1)
每个线程都存在,直到ProcessRequest完成。一旦该方法返回,线程就会返回到线程池中再次使用。
即使您没有维护对线程对象的引用,它也会被框架和操作系统引用,因此在线程完成运行之前,它不会被释放。