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

  

原文地址:https://www.cnblogs.com/feinian/p/2151004.html