Thread 使用心得
ThreadPool:
1. 啟動的線程會自動結束, 里面不包含"合理死循環"代碼.
一般用于處理某一個任務,執行完成線程即結束.
Thread
1. 用于執行指定的特殊任務, 特點是可以自由處理Initlization, Start, Suspend, Resume, Abort.
例如:
a. 專門開啟一個線程用于監測數據庫某個表數據的變化,
b. 監測某個實例的狀態,
這種監測類型一般會用一個while(true){}來實現, 當該線程需結束時,或者線程宿主(主程序)結束時需要使用abort強制結束.
當用while(true){}時, 如果暫時無任務,可以加入線程等待,通過ManualResetEvent實現
Demo Code:
while (true)
{
WaitHandle.WaitAll(new WaitHandle[] { WaitRecombinationMessageHandlerEvent });
if (ReceivedPureMessageQueue.Count > 0)
{
dosomethings();
}
else
{
WaitRecombinationMessageHandlerEvent.Reset();
}
}
浙公網安備 33010602011771號