Re: [問題] Thread 與 Class 一問...

看板C_Sharp作者 (難得一身雞蛋糕...)時間18年前 (2007/11/14 17:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/7 (看更多)
※ 引述《WayneChu (台北人在洛城)》之銘言: : ※ 引述《KENyroj (難得一身雞蛋糕...)》之銘言: : : 大概是像上面那樣... 但是我卻不知如何把 Thread 停掉... : : 請問有什麼線索可以提供參考嗎... ^^" : : 推 KENyroj:我的意思是, Class 有類似 destructor 的地方來寫這些嗎 11/03 00:30 : : → KENyroj:還是說我直接寫個 public method 來呼叫 Abort 也行?? 11/03 00:30 : 不論Abort/Interrupt都不建議使用 : 你的DoThing裡面應該是個無窮迴圈吧? : 自己想辦法從迴圈裡跳出來 : 比如由另一個執行緒設個旗標或AutoResetEvent/ManualResetEvent之類 : DoThing函式結束thread也就跟著結束 : 這是唯一安全結束執行緒的方法 謝謝大大的指教... 我在這方面的實作上碰到了盲點... 如同大大所言, 我在這個包含了 Thread 的 class 裡寫了個 public 的 bool IsStop; 然後在 DoThing 的 method 裡寫的就是 while(!IsStop) { ... } 然後這個 ThreadClass 定義了個Stop()方法, 目前的做法就是 IsStop = false; 但是這樣一來產生了一個問題... 因為其實 while 裡面是一個 server物件 的 Listen 程式檢查過一次 IsStop 是 false 後, 就讓那個 Server 物件去 Listen... 在這其間, IsStop 若有任何變更, 其實 Server物件不會停止 Listen 要等它 Listen 完後, 要再一次開始Listen 時才會去檢查那個 IsStop... 不知有沒有其它作法, 還是我的做法有什麼地方可以改進的 ^^" __yroj -- 因為不是每個人都有女朋友 所以上帝賜給我們十根手指頭 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.5.97
文章代碼(AID): #17Ehv0ad (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #17Ehv0ad (C_Sharp)