2 daisy thq daisy_thq 于 2015.06.15 08:55 提问

C#winform多线程问题,求救

C#winform多线程,有6000条数据,分别根据ID查询,把信息导出excel,开100个线程同时查询,线程没走完就导出了,就没有那么多条数据,怎么办?求救
CountdownEvent handler = new CountdownEvent(100);
for (int i = 0; i < 100; i++)
{
Thread Thd = new Thread(() =>
{
DateTime staTime = DateTime.Now;
for (int j = i * (match_3.Count / 100); j < (i + 1) * (match_3.Count / 100); j++)
{
FlightInfo flight = GetAriInfo(match_3[j].Groups[2].Value);
flist.Add(flight);
}
});
Thd.Name = i.ToString();
Thd.Start();
Thread.Sleep(1000); //wait 1 seconds to do something
handler.Signal();
}
handler.Wait();
//线程走完了执行的代码

2个回答

bulusli3
bulusli3   Ds   Rxr 2015.06.15 09:40

其实不用这样做,直接用linq的parallel就行,这个是系统的并行方法,比自己写的要好的多。

XJC_gx
XJC_gx   2015.06.16 16:19

有那么麻烦么,直接引 EPPlus ,然后按照要求导出即可。。。

Csdn user default icon
上传中...
上传图片
插入图片