C#中的后台工作者

实际上,我需要提示加载图像throwugh backgrounderworker,每当调用一个特定的函数是我的代码:

private void bgwFile_DoWork(object sender, DoWorkEventArgs e) { FormFieldsLoad(); } private void bgwFile_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled == true) { Status.Text = "cancelled"; } else if (e.Error != null) { } picprocess.SendToBack(); Status.Text = "Completed"; } //Below Method where i have called RunWorkerAsync() private void buttonUpload_Click(object sender, EventArgs e) { LoadFile(pdfFullPath, txtPassword.Text); form = document.getDocumentCatalog().getAcroForm(); java.util.List FieldTypes = form.getFields(); availableFieldsTable.Clear(); btnLoad.Enabled = false; Status.Text = "Document loaded successfully!!!"; picprocess.BringToFront(); bgwFile.RunWorkerAsync(); } 

在运行上面的代码时,它会调用加载图像,但是没有输出显示它继续显示加载图像..它没有调用RunWorkerCompleted

任何人都可以帮助我

谢谢

你分配了事件处理程序吗?

 bwgFile.DoWork += bgwFile_DoWork; bwgFile.RunWorkerCompleted += bgwFile_RunWorkerCompleted; 

你确定FormFieldsLoad终止了吗?

正如@Rik所说,你有没有分配事件处理程序?

如果你有,请设置一个断点或其他跟踪来validation你的bgwFile_DoWork方法是否按预期执行,并且不会陷入无限循环或其他问题。

DoWork真的完成了吗? 此代码是否会在输出窗口中打印任何内容?

  private void bgwFile_DoWork(object sender, DoWorkEventArgs e) { FormFieldsLoad(); Console.WriteLine("Work done"); } // <-or put a breakpoint here