dポイントプレゼントキャンペーン実施中!

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++;
}
}

A 回答 (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();
}
}

//なお動かしてはいませんので、うまく動かないこともあるかもしれません。
    • good
    • 0

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