我有一个使用 BackGroundWorker 执行一组任务的 c# 应用程序:
private void buttonStartCheckOut_Click(object sender, EventArgs e)
{
BackgroundWorker checkOuter = new BackgroundWorker();
checkOuter.DoWork += new DoWorkEventHandler(checkOuter_DoWork);
checkOuter.RunWorkerAsync();
checkOuter.RunWorkerCompleted += new RunWorkerCompletedEventHandler(checkOuter_RunWorkerCompleted);
}
void checkOuter_DoWork(object sender, DoWorkEventArgs e)
{
if (textBoxCICheckOut.Text != "")
CheckOutCI();
if (textBoxCACheckOut.Text != "")
CheckOutCA();
if (textBoxCAuthCheckOut.Text != "")
CheckOutCAuth();
if (textBoxCLCheckOut.Text != "")
CheckOutCL();
if (textBoxCCCheckOut.Text != "")
CheckOutCC();
}
如您所见,我只有 2 个线程;一个用于 GUI,一个用于辅助任务。
我很容易跟踪所有功能何时完成。
现在我想通过为 CheckOutCI()、CheckOutCA() 和其他线程创建一个单独的线程来使其更快。创建 5 个后台工作人员看起来有点脏。
我想问:
我将如何跟踪所有功能何时完成执行。
如果任何一个函数返回异常,我想将其显示给用户并要求用户更正用户并重试。我希望我能够正确解释我的问题。
请根据我对他帖子的评论由 wdavo 编辑代码。