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++;
}
}
No.1ベストアンサー
- 回答日時:
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();
}
}
//なお動かしてはいませんので、うまく動かないこともあるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java java final 1 2022/06/10 22:49
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で、あるクラスのメンバーす...
-
C#で、定数をフラグ(if文)に...
-
Processingでマウスクリックで...
-
C#から、C++で作成したdll内の...
-
struts2のchainで値の受け渡し...
-
JavaプログラムのUML化
-
C#で別のFormへ複数の値を返そ...
-
長方形をドラッグするJavaアッ...
-
C# MouseHoverを何度も呼ぶには
-
C# タスク非表示でタイトルバー...
-
JavaSwingのファンクションキー...
-
正規表現
-
Visual C♯ フォーム間での値の...
-
メンバ変数の隠蔽
-
ボタンのイベントで異なるウィ...
-
ボタンの複数割り当てについて
-
iアプリ 複数パネル切替時の変...
-
LVM_SETITEMSTATEでListViewの...
-
マウスイベント処理
-
GetDIBits関数の使い方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
Processingでマウスクリックで...
-
ボタンの複数割り当てについて
-
エンターキーを押すとOKボタン...
-
C# 矢印キーの取得
-
C# visibleプロパティをfalseに...
-
Thread.sleepのInterruptedExce...
-
C# DataGridView列カスタマイズ
-
C#でキーイベントが発生しない...
-
LVM_SETITEMSTATEでListViewの...
-
[C#.net]スレッド化された別フ...
-
GetDIBits関数の使い方について
-
C# 半角カナの文字化けについて
-
C# 親フォームで指定した値を...
-
javaアプレット repaintのタイ...
-
デスクトップマスコットのドラ...
-
C#で別のFormへ複数の値を返そ...
おすすめ情報