Re: [問題] 三個執行緒循環互鎖
※ 引述《ko1 (接逃獄 請寄信)》之銘言:
: public class a
: {
: public void method1(){}
: public void method2(){}
: public void method3(){}
: }
: 在其他地方產生A的物件o
: 然後分別產生thread去執行o.method1 o.method2 o.method3
: 希望達到
: o.method1執行過才執行o.method2
: o.method2執行過才執行o.method3
: o.method3執行過才執行o.method1
: 的循環
: 請問該如何去進行?
: ----
: 在2個互鎖的情形下 只要設一個bool變數去判斷二個method誰可以動作
: 在3個的情況下 我卻搞不清楚 該如何去設定
: 在其中一個method放出 Monitor.Pulse(); 去指定另外某一個method可以動作?
我不大清楚你的狀況 下面code可參考一下 ~
class a
{
public void Method1()
{
Console.WriteLine("Method 1");
}
public void Method2()
{
Console.WriteLine("Method 2");
}
public void Method3()
{
Console.WriteLine("Method 3");
}
}
class Program
{
static void Main(string[] args)
{
a o = new a();
for (int i = 0; i<2;i++ )
{
Thread loThread1 = new Thread(new ThreadStart(o.Method1));
Thread loThread2 = new Thread(new ThreadStart(o.Method2));
Thread loThread3 = new Thread(new ThreadStart(o.Method3));
loThread1.Start();
loThread1.Join();
loThread2.Start();
loThread2.Join();
loThread3.Start();
loThread3.Join();
Console.WriteLine("Done");
Thread.Sleep(2000);
}
}
}
******************
Join 是你要的感覺嗎 ? @@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.197.91
推
01/05 23:10, , 1F
01/05 23:10, 1F
→
01/05 23:11, , 2F
01/05 23:11, 2F
→
01/05 23:13, , 3F
01/05 23:13, 3F
推
01/06 01:22, , 4F
01/06 01:22, 4F
推
01/06 03:03, , 5F
01/06 03:03, 5F
→
01/06 03:05, , 6F
01/06 03:05, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章
7
20