我启动了一个线程,它每 5 分钟收集大约 500 条记录。然后通过 foreach 语句,我为获得的每个详细信息创建了单独的后台工作程序。我通过检查队列中的条件(数据库中的“QU”)来收集数据。而后台工作人员Do_Work 事件我将“QU”状态更新为“PR”。
BackgroundWorker bw1;
Collection collect = new Collection()
foreach (Transaction trans in transactionList)
{
try
{
collect.TransactionDetails = trans;
bw1 = new BackgroundWorker();
bw1.DoWork += new DoWorkEventHandler(bw1_DoWork);
bw1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw1_RunWorkerCompleted);
bw1.RunWorkerAsync(collect);
}
catch
{ }
}
这是一个漫长的过程,因此必须使用后台工作程序运行。我的问题是,如果这个过程需要超过线程睡眠时间才能完成,那么将再次收集具有“QU”状态的相同记录。我如何理解该过程仍在运行并使线程等待更多时间直到完成