質問 |
||
| 質問者:oeppu08 | c# スレッド間でのデータの共有 | |
|---|---|---|
困り度:
|
C#でメインプロセスと生成されたスレッド間でデータの共有をさせたいのですがどのようにすればいいのでしょうか。ご教授お願い致します。 ・メインプロセス(A) ・Aから生成されたスレッド(B) 例えば、AとBで変数の値をそれぞれ読み書きさせたい場合 どのようにすればよいのでしょうか。 class TEST { public int flag; // メインプロセス(A) public static void Main() { Thread t = new Thread(new ThreadStart(abc)); t.IsBackground = true; t.Start(); while(ture) { Thread.Sleep(10); Console.WriteLine("A:{0}",flag); } } // Aから生成されたスレッド(B) public void abc() { Console.WriteLine("B:{0}",flag); flag++; } } |
|
質問投稿日時:08/04/08 15:37 質問番号:3932361 |
||
回答良回答20pt |
|
| 回答者:ape5 | Mutexを使えばよいのではないでしょうか。 class TEST { public int flag; private static Mutex mx = new Mutex(false,"myMutex"); // メインプロセス(A) public static void Main() { Thread t = new Thread(new ThreadStart(abc)); t.IsBackground = true; t.Start(); while(ture) { mx.WaitOne(); Thread.Sleep(10); Console.WriteLine("A:{0}",flag); mx.ReleaseMutex(); } } // Aから生成されたスレッド(B) public void abc() { mx.WaitOne(); Console.WriteLine("B:{0}",flag); flag++; mx.ReleaseMutex(); } } //なお動かしてはいませんので、うまく動かないこともあるかもしれません。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/09 10:42 回答番号:No.1 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |