【发布时间】:2012-03-22 23:50:53
【问题描述】:
foreach (string file in listToConvert)
{
BackgroundWorker backgroundWorker = new BackgroundWorker();
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.DoWork += new DoWorkEventHandler(
(s3, e3) =>
{
newFile = sendFilesToConvert(file);
});
backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
(s3, e3) =>
{
listBoxFiles.Items.Add(newFile);
});
backgroundWorker.RunWorkerAsync();
}
列表中的每个文件都将转换为另一个文件,我希望每个 BackgroundWorker 将等到它完成转换,然后才开始下一个 BackgroundWorker 我该怎么做?
【问题讨论】:
-
你为什么不想在一个BackgroundWorker中转换所有文件?
-
那你为什么要使用后台工作者呢?无论哪种方式,您都可以简单地在前一个事件的已完成事件中启动新的后台工作人员。
-
您使用的是什么版本的 .Net。如果您使用的是 4.0,则可以使用单个后台工作程序和一个并发队列。
-
@oxilumin 哦,您阅读了问题并实际查看了代码! :) 是的,那会更有意义。
-
你能告诉我怎么做吗?我正在使用.Net 3.5