C#でBackgroundWorkerの問題に直面しています。お役に立てば幸いです。 はここC#BackgroundWorker inside BackgroundWorker
var bwBIG = new BackgroundWorker();
bwBIG.DoWork += (_senderBIG, argsBIG) =>
{
var bw = new BackgroundWorker();
String requestResult = "";
bw.DoWork += (_sender, args) =>
{
requestResult = tempHelper.GetData();
};
bw.RunWorkerCompleted += (_sender, args) =>
{
makeData(requestResult);
};
bw.RunWorkerAsync();
}; //bwBIG.DoWork
bwBIG.RunWorkerCompleted += (_senderBIG, argsBIG) =>
{
prepareData(rtbData.Text);
MessageBox.Show("Data OK");
};
bwBIG.RunWorkerAsync();
それは「その後、MessageBox.Show(tempHelper.GetData()を実行すると仮定して、makeData(requestResult)、その後、finnally prepareData(rtbData.Text)私のプログラム上のコードのいくつかの作品ですデータOK ")。 しかし、bwがまったく実行されていないようです。コードを実行するたびに、MessageBox.Show( "Data OK")に変わっただけです。 何か助けてください??? 読んでいただきありがとうございます。
あなたの 'bwBIG.Dowork'には何も表示されていないので、何の時間も停止することはありません。あなたがやっていることは、別のバックグラウンドワーカーを設定し、非同期で実行するように指示することだけです。あなたは 'bw.DoWork'が終了するのを待っているようには見えないので、' bwBig'はとても素早く終了します。そして、なぜ私はバックグラウンドタスクを作成するのですか? – Chris
すべてのbwBIGがセットアップされ、内部BWが起動します。すぐに終了し、RunWorkerCompletedを起動します。あなたがそこで何をしようとしているのか分かりません。 –