2013-03-29 41 views
2

其实,我需要提示加载图像throwugh backgrounderworker,当特定功能在这里调用 是我的代码:的BackgroundWorker在C#

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

任何一个可以帮我请

感谢

+2

什么是FormFieldsLoad方法? – laszlokiss88

+0

@ laszlokiss88它标识PDF表单中的表单域并加载到数据表中 – Ganeshja

+0

您是否调试过我确认RunWorkerCompleted未被调用?我怀疑它正在调用它,但picprocess.SendToBack()不是你认为它的作用。你尝试过'picprocess.Visible = false'吗? – void

回答

3

您是否分配了事件处理程序?

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

您确定FormFieldsLoad终止?

0

正如@Rik所说,你是否分配了事件处理程序?

如果有,请输入一个断点或其他跟踪以验证您的bgwFile_DoWork方法是否按预期执行,并且不会陷入无限循环或其他情况。

0

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

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