C# Thread 執行緒 « 關於網路那些事...
阿新 • • 發佈:2018-12-23
C# Thread 執行緒
程式都會有一個主處理序
例如,在同一個主處理序,可能同時會需要送出多筆訂單、讀取大型檔案等專案要排隊
在這主要的處理序,可以額外建立新的執行緒,可以將指定的任務交給新的執行緒獨立處理
通常,需要長時運算、 等待回應的流程,就會透過建立新的執行緒來獨立運算,避免影響到其他流程
載入空間命名
ThreadStart 執行緒
首先,介紹ThreadStart,可以直接委派執行緒至無回傳值的物件
ParameterizedThreadStart 執行緒
ParameterizedThreadStart 執行緒可以將引數值傳給委派物件
暫停 Thread.Sleep
在執行緒執行過程,可以透過Thread.Sleep讓執行緒暫停指定的毫秒
封鎖/阻塞 Thread.Join()
通常我們認知的Join是連結的意思,但是在C# Thread.Join 的意思是
可以封鎖指定的執行緒,直到執行緒執行完畢
主要用於控制順序,等封鎖的執行緒執行完畢,主處理序才會繼續往下走
Lock 鎖定
Lock 可以針對委派至同一個物件時,控制鎖定資源
當多個執行緒執行同一物件,只要其中一個先執行,其他的就要排隊等他執行完
Monitor 監控
Monitor 監控,提供更彈性的方式來控制執行緒流程
其中提供幾個靜態方法
Monitor.Enter : 開始監控
Monitor.Wait : 暫停執行緒
Monitor.Pluse : 喚醒被暫停的執行緒
Monitor.Exit : 結束監控
Interrupt 中斷執行緒
在執行緒運作時,可以透過 Interrupt 阻斷執行緒
並且可以透過 try catch 捕捉例外
當指定執行緒被終止時,Join也會立即執行完畢
Abort 手動終止執行緒
在執行緒啟動過程,可以透過 Abort 強制停止
IsBackground 背景執行
在多數執行緒設計,都會需要持續執行、並且在主要程式結束時跟著停止
這時只要將 IsBackground 設定為 true 就可以達到背景執行,程式結束就跟著結束
如果你喜歡我們的文章內容,請在這裡按個讚
Tweet