主线程如何控制子线程的问题
chlei 2010-01-20 03:33:04 现在在做一个把网页生成图片的批处理,每次处理200左右个网页
主线程里面启动子线程,每个子线程生成一个图片,
但是希望在主线程里面能够控制子线程,如果网页读取超时的话,
就结束子线程,但是总是不能正常结束。
有时候子线程抛出异常,主线程也结束了。
帮我看看下面的代码有没有问题,如果有,需要怎样修改
for (int i = 0; i < list.Rows.Count; i++)
{
try
{
DataRow row = list.Rows[i];
..................
ImageThread imageThread = new ImageThread(URL);
ThreadStart threadStart = new ThreadStart(imageThread.makeImage);
Thread thread = new Thread(threadStart);
thread.Start();
Thread.Sleep(60000);
if (thread.ThreadState == ThreadState.Stopped && imageThread.STATUS == 0)
{
//成功处理
}
else
{
int times = 3;
while (thread.ThreadState == ThreadState.Running && times != 0)
{
Thread.Sleep(20000);
times--;
}
thread.Abort();
}
}
catch (Exception ex)
{
//错误处理
}
}