接上篇文章,上面的文章利用ThreadPool实现了线程的自动运行,并最后反映在了UI线程上,但是两个ThreadPool中的线程怎么同步,就需要使用ThreadPool中的ManualResetEvent。
MSDN中ManualResetEvent解释为:通知一个或多个正在等待的线程已发生事件。
简单的说,ManualResetEvent就是一个信号量,相信使用过多线程的童鞋们肯定知道线程互斥与同步,姑且把ManualResetEvent当做线程阻塞等待用吧。
下面上代码:
class Program
{
ManualResetEvent eventMessage = new ManualResetEvent(false);
static void Main(string[] args)
{
Program p=new Program();
ThreadPool.QueueUserWorkItem(new WaitCallback(p.Alpha));
ThreadPool.QueueUserWorkItem(new WaitCallback(p.Beta));