我打算使用自動重置事件句柄來進行線程間通信。.NET線程同步
EventWaitHandle handle = new EventWaitHandle(false, EventResetMode.AutoReset);
我的生產者線程的代碼看起來像下面
produceSomething();
handle.Set();
在消費者線程,我要下載的數據每隔一分鐘或當製片 被稱爲設置方法
try
{
while(true)
{
handle.WaitOne(60000, false);
doSomething(); // Downloads data from Internet.
// Takes lot of time to complete it.
}
}
catch(ThreadAbortException)
{
cleanup();
}
我的問題是,如果消費者線程正在運行doSomething
函數和生產者調用設置函數,自動重置事件對象的狀態是什麼?
我的要求是儘快生產者調用設置方法我必須從互聯網上下載新的數據。如果doSomething
函數正在運行,當Producer調用set方法時,我必須中斷它並再次調用。