看板 C_Sharp 關於我們 聯絡資訊
※ 引述《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
ko1:謝謝 但好像不是我想要的功能耶@@ 3個method都是無限回圈 01/05 23:10
ko1:我希望一直執行 但是每一輪 都要2等1結束 3等2結束 1等3結束 01/05 23:11
ko1:才開始執行 01/05 23:13
casiopea:用lock搭配pulse()以及一個bool變數不曉得能不能達成@@" 01/06 01:22
ko1:1送出的pulse()可能被2接收 也可能被3接收 我不知道如何去設QQ 01/06 03:03
ko1:1固定只讓2接收 2固定只讓3接收 3固定只讓1接收 01/06 03:05