マルチスレッド処理(BackgroundWorker)のDoWark内の処理結果をRunWorkerCompletedに伝える方法
Resultプロパティ使用する方法
System::Void DoWork( System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e )
{
// ~宣言・処理は省略~
e->Result = pcObject;
}
System::Void RunWorkerCompleted( System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e )
{
// ~宣言・処理は省略~
pcObject = e->Result;
}
Cancelプロパティ使用する方法
System::Void DoWork( System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e )
{
e->Cancel = true;
}
System::Void RunWorkerCompleted( System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e )
{
if( e->Cancelled == true )
{
// キャンセル時の処理
}
}
Resultプロパティは、Cancel,Errorプロパティの値を調べてからやらないとダメなので、
単純に成功/失敗だけの情報であればCancelプロパティを使うのが一番簡単。
投稿者 NMVL : 2006年5月23日 15:09