[問題] Thread.Sleep()

看板C_Sharp作者 (青)時間15年前 (2009/05/09 22:13), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
想請問一下 我做了一個MultiThread,程式碼如下: private static void TimerShow() { while (true) { Console.WriteLine("Hi, SeptemHill"); Thread.Sleep(5000); } } private static void TimerSay() { while (true) { Console.WriteLine("Hi, Nicole"); } } static void Main(string[] args) { ThreadStart BackThread_1 = new ThreadStart(TimerShow); Thread Threading_1 = new Thread(BackThread_1); ThreadStart BackThread_2 = new ThreadStart(TimerSay); Thread Threading_2 = new Thread(BackThread_2); Threading_1.Start(); Threading_2.Start(); for (int i = 0; i < 1000; i++) { Console.WriteLine(i.ToString()); } Threading_1.Abort(); Threading_2.Abort(); } 利用Thread.Sleep()的話 我看到的是說:導致所有的Thread全部跟著暫停Sleep的時間 但是照我上面程式碼做出來的結果好像不是這個樣子 而利用Thread.Join()的話 才是單一Thread暫停,其餘的Thread繼續進行 想請問一下,我這樣的觀念出問題了嗎? 還是我的程式碼有問題? 請各位指點一下,謝謝 -- Ultimate Treein ˍˍ ▕慕京▏ ▕子印▏  ̄ ̄ http://septemhill.pixnet.net/blog -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.42.238

05/10 00:19, , 1F
Thread.Sleep 是暫停目前的執行緒 (呼叫此方法的執行緒)
05/10 00:19, 1F

05/10 00:20, , 2F
Join 是暫停目前執行緒,等指定執行緒結束後再開始
05/10 00:20, 2F

05/10 07:13, , 3F
原來如此,那是我弄錯觀念了,謝謝H大
05/10 07:13, 3F
文章代碼(AID): #1A1O-Air (C_Sharp)