CancelAsync()
ボタンクリックイベントでメソッドをトリガーして、Windowsフォームコードでバックグラウンドワーカーを停止しています。以下はサンプルコードです。
// Windows Form
private: System::Void startButton_Click(System::Object^ sender, System::EventArgs^ e) {
testBgWorker->RunWorkerAsync();
}
private: System::Void testBgWorker_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) {
CalculateDistance* calcDistance = new CalculateDistance();
calcDistance->doCalculations();
}
private: System::Void stopButton_Click(System::Object^ sender, System::EventArgs^ e) {
testBgWorker->CancelAsync();
}
// CalculateDistance.cpp
void CalculateDistance::doCalculations() {
for (int i=0; i<1000, i++)
{
// some calculations here
}
}
for
BackgroundWorker(ループからの終了)をキャンセルするにはどうすればよいですか?CancelAsync()
仕事をしていないようです。
ありがとう。