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(); } }