アプリ版:「スタンプのみでお礼する」機能のリリースについて

いろいろ試してみたいのですがどうにもうまくいかないので質問させていただきます。

メインスレッドから複数の別スレッドを作って処理を分散して
別スレッドの処理がすべて終了したら、メインスレッドは次の処理に移行するというプログラムが作りたいのですがうまくいきません。
イメージとしては以下のようなコードです。簡潔な解決方法をご教授お願いします。


public void MainThread(){
  //複数のスレッドを生成する。
  for(int Count=0;Count<5;Count++){
    System.Threading.Thread mTh = null;
    mTh = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadMethod));
    mTh.Start();
  }

  //生成したスレッドで処理が終わるのをループで待てばいい?
  for(;;){
    if(スレッドの処理が終わったら){
    //次の処理
    }
  }
}

A 回答 (1件)

Thread.Joinメソッドを使うことで、スレッド終了まで待機することができます。


https://msdn.microsoft.com/ja-jp/library/95hbf2t …
    • good
    • 0
この回答へのお礼

そんなドンピシャなメソッドがあるんですね。盲点でした。
スレッドのインスタンスを配列に格納して、その配列をforeachでまわしてthread.join()で終了確認すれば、複数のスレッドの終了とメインスレッドを同期できますね。すばやいご回答ありがとうございます。

お礼日時:2015/09/04 13:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています