定義一個AutoResetEvent 的對象,在父進程和子進程都會使用到。WaitOne()用在父進程里,第一個參數為等待時間,如果為-1表示一直等待不返回。
Set()用在子線程,當批處理完成后可以調用Set()來通知父進程
WaitHandle應用廣泛,例如可以應用在服務程序偵聽數據來源,當有數據時進行處理,
沒有的時候等待timeout時間,處理regular的事情。這樣還起到sleep的作用。
while(true)
{
if (autoEvent.WaitOne(5000, false))
{
ProcReques();
}
else
{
ProcRegularTask();
}
}
如果等待單個事件不夠只能使用Win32的API WaitForMultipleObjects了。那就需要P/Invoke。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/