我有我想要的收購(鎖定)函數調用的資源的情況下釋放,但我在回調(不同的線程)信號的過程的結束。 (資源是外部的:基本上,有一定的總線變得繁忙時,我開始並再次是免費的回調。)同步對象在一個線程鎖定,而在另一個
帶鎖/關鍵部分,這是根本不可能的。我也嘗試過互斥,但只能得到異常,可能是因爲我在另一個線程中釋放。
這裏有什麼選擇?
看來,我可以
- 創建布爾「手工」同步它們(鎖定訪問揮發性布爾,然後做了一段時間()睡覺的WaitOne代替)
- 使用事件單 - 在第三個包裝線程中將所有東西線程化,然後同時管理同步對象
爲了簡單起見,我可能會去布爾。或者最好是運行時提供的任何機制。 回調來自外部庫。
更新:我也剛纔發現的信號,這似乎符合我的需要。我會問任何人,以防有人有更好的主意/別人認爲這有用。
對於你想要做什麼,你能**非常具體嗎?我*懷疑*你想要什麼可以使用'Monitor.Wait'和'Monitor.Pulse' /'Monitor.PulseAll'完成 –
@Marc我想同時請求我的操作的幾個線程同步。我的問題是,操作從我開始請求到回調被調用時。從查看MSDN中的Monitor,我無法調用進入並在2個不同的線程中離開。要使用Pulse,我必須編寫自己管理資源訪問的邏輯。 –
@AndreasReiff聽起來像是你想有一個信號,然後 –