扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:老痞子 来源:老痞子’s blog 2007年11月17日
关键字:
以下是引用片段: public void WorkerBegin() { Monitor.Enter(this); m_activeThreads++; m_started = true; Monitor.Pulse(this); Monitor.Exit(this); } |
WorkerBegin方法首先增加当前活动线程的数量,接着设置m_started标记,最后调用Pulse方法以通知(可能存在的)等待工作线程启动的线程。如前所述,可能等待Done对象的方法是WaitBegin方法。每处理完一个URL,WorkerEnd方法会被调用:
以下是引用片段: public void WorkerEnd() { Monitor.Enter(this); m_activeThreads--; Monitor.Pulse(this); Monitor.Exit(this); } |
WorkerEnd方法减小m_activeThreads活动线程计数器,调用Pulse释放可能在等待Done对象的线程--如前所述,可能在等待Done对象的方法是WaitDone方法。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。