定义一个AutoResetEvent 的对象,在父进程和子进程都会使用到。WaitOne()用在父进程里,第一个参数为等待时间,如果为-1表示一直等待不返回。
Set()用在子线程,当批处理完成后可以调用Set()来通知父进程
WaitHandle应用广泛,例如可以应用在服务程序侦听数据来源,当有数据时进行处理,
没有的时候等待timeout时间,处理regular的事情。这样还起到sleep的作用。
while(true)
{
if (autoEvent.WaitOne(5000, false))
{
ProcReques();
}
else
{
ProcRegularTask();
}
}
如果等待单个事件不够只能使用Win32的API WaitForMultipleObjects了。那就需要P/Invoke。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/