2

実際には、特定の関数が呼び出されるたびに、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

誰でも私を助けてくれますか

ありがとう

4

3 に答える 3

3

イベント ハンドラを割り当てましたか?

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

本当にFormFieldsLoad終了しますか?

于 2013-03-29T12:28:09.337 に答える
0

DoWork は実際に終了しますか? このコードは出力ウィンドウに何かを出力しますか?

 private void bgwFile_DoWork(object sender, DoWorkEventArgs e)
 {
        FormFieldsLoad();      
        Console.WriteLine("Work done");
 } // <-or put a breakpoint here
于 2013-03-29T13:47:06.960 に答える
0

@Rik が言ったように、イベント ハンドラを割り当てましたか?

ある場合は、ブレーク ポイントまたはその他のトレースを配置して、bgwFile_DoWorkメソッドが期待どおりに実行され、無限ループなどに陥っていないことを確認します。

于 2013-03-29T13:07:29.837 に答える