多线程 主线程挂掉的问题,万分感谢
艾米01 2013-06-19 09:30:07 我是用windows服务的形式,让此程式自动采集数据,用定时器定时。
然后在采集数据的方法中,我把需要处理的url都写入到队列,当队列元素>0的时候,就 GetSevenWth(q.Dequeue()) 以出队列的形式,写入采集方法。
线程是申请了10个,
Thread[] th = new Thread[count];
for (int i = 0; i < count; i++)
{
if (q.Count > 0)
{
th[i] = new Thread(new ThreadStart(printQueue));
th[i].IsBackground = true;
th[i].Start();
}
}
其中printQueue是:
static private void printQueue()
{
while (true)
{
if (q.Count > 0)
{
GetSevenWth(q.Dequeue()); //具体采集的方法。
}
else
{
return;
}
}
}
每次第一次执行成功,然后在次执行或者第三次timer启动执行时,此windows服务会自动停止了。 希望能帮忙找找原因,谢谢。