作者ragye (侣)
看板C_Sharp
标题[问题] 产生多个Thread,执行一段时间後却死当。
时间Thu Nov 10 14:38:22 2011
最近小弟写了一段程式码。
内容叙述大概是说
一个while回圈
每次会新增10~200个Thread不等
Thread[] nowThread = new Thread[count];
for(int i = 0 ; i < count ; i++)
{
nowThread[i] = new nowThread(DoWork);
nowThread[i].IsBackground = true;
nowThread[i].Start(i);
}
接着DoWork内容是不断去创建一个Bat档後利用Process去执行
并且读取Bat执行的结果,直到资料够了或是达到停止条件。
其间我利用thesThread[i].IsAlive判断是否结束
当所有Thread结束後我会将他们读取的资料输出成一个txt档
但是问题来了。
常常在while回圈在第N次的时候(N不一定 也许50 也许80)
整个死当,此时使用单步执行想看DoWork内究竟卡在哪里,就会整个死当,无法观看。
想请问各为大大,问题究竟出在哪里?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.125.46.86
1F:→ dragon0414:出在你没有深深的爱意 11/10 14:53
2F:推 CJHhelper:你以为thread可以像鸣人一样的无限分身下去? 11/10 15:36
3F:→ ragye:请问楼上,所以问题出在我每次回圈没有释放Thread吗? 11/10 15:40
4F:→ ragye:我後来在每次结束後都Thread = null; 并且GC.Collect() 11/10 15:42
5F:→ ragye:这样似乎还是会出现问题,想再请教? 11/10 15:42