タイトル : Re^5: マルチスレッドでスレッドを何度も実行する方法を教えてください 投稿日 : 2007/07/17(Tue) 16:55 投稿者 : 魔界の仮面弁士
念のため確認。たとえば、ある変数に対して totalValue += 1 のように、単純に Integer 値を加算するだけの処理であっても、 これを複数のスレッドから同時に処理した場合、不整合を 起こす可能性がある……という事は認識されていますか? > ↑の部分はApplication.DoEvents()を挟んで > UL、DLスレッドとの同期の為にPulic変数(Status)で判断しています。 その変数は、メインスレッドの変数ですか? ワーカースレッドの変数ですか? 両スレッド間で変数を共有しようとしているのであれば、基本的に NG です。 もし、どうしても複数のスレッドからのアクセスが必要なのであれば、 その変数を読み書きするたびに、何らかの同期化を利用して、その共有データに対して 一度に 1 つのスレッドだけからアクセスされることを保証せねばなりません。 |