マルチスレッド処理

マルチスレッド処理は、BackgroundWorkerを使うと簡単

System::ComponentModel::BackgroundWorker^ cmBackgroundWorker;

おなじみのイベントハンドラを作成。

System::Void Form::DoWork( System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e )
{
    // ここに、処理を書く
}

System::Void Form::RunWorkerCompleted( System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e )
{
    // スレッドが終了したときに呼ばれる
}

イベントハンドラを登録して、RunWorkerAsync()でスレッド開始

cmBackgroundWorker->DoWork += gcnew System::ComponentModel::DoWorkEventHandler( this, &Form::DoWork );
cmBackgroundWorker->RunWorkerCompleted += gcnew System::ComponentModel::RunWorkerCompletedEventHandler( this, &Form::RunWorkerCompleted );

// スレッド開始
cmBackgroundWorker->RunWorkerAsync();

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です