我有一個父線程(非UI),它創建一些子線程來做一些工作 - 在某些時候父母必須等待某些任務完成孩子的線程 - 這並不意味着孩子已完成,但只是它已達到一定的點,父母現在可以繼續處理...當孩子執行某個動作時通知父線程[C#]
說明請參考下面的代碼,顯然這不是什麼我的孩子會做,但它顯示了我正在努力完成的事情。回想一下,這些都不是UI線程...
// Parent Thread
Thread childThread = new Thread(new ThreadStart(Manage));
childThread.IsBackground = true;
childThread.Name = "NamedPipe Manager";
childThread.Start();
while (true)
{
... do some work ...
// wait for signal from MainThread to proceed //
... do more work
}
// Child Thread
private void Manage()
{
... do some work ...
... call some functions ...
// SIGNAL TO PARENT THAT IT CAN CONTINUE //
... do more work ...
... call more functions ...
}
任何一個有我如何能做到在一個線程安全的方式這個任務有什麼建議? 任何幫助將不勝感激。 謝謝,
如果它們在另一個類中會發生什麼?例如Pareant創建A = new A();而在A裏面,我們啓動一個需要在父級中設置()ManualResetEvent()的線程? – Shaitan00 2009-08-28 16:34:50
將信號引用作爲參數傳遞給A構造函數 – dtb 2009-08-28 17:57:14