我已閱讀mutex
被線程所有並且只能由擁有線程使用。在this answer中,解決方案建議每個進程在發出信號通知其他對象之前必須擁有該互斥鎖的所有權。我必須在這裏承認我的愚蠢,我不知道如何使用IPC的事件,因爲他們還沒有在我的MSDN閱讀中彈出,我喜歡這個唯一命名的mutex
作爲我的解決方案,但我甚至不知道如何在WindowsService和常規進程之間轉移所有權。請幫忙。轉移.NET互斥鎖的所有權
我可以添加,喬恩斯基特的教程here告訴我,不同用戶之間的溝通,那麼我想LocalSystem
是,需要前綴mutex
名以「全球\」。我在.NET文檔中找不到任何提及,我想他是對的,我必須比MSDN系統更注重MSDN系統。
幾乎和你一樣,當我閱讀gmamaladze的代碼時,讀到了我在我的回答中鏈接的頁面(之前可以)!儘管如此,我不會厭倦聽到它再說。令我困惑的是,第一個和第二個調用者都擁有相同的已命名互斥體?因爲兩者都必須先釋放它才能鎖定它?這似乎違反了我一次只有一次鎖定的目標。 – John
@John:所以如果你意識到這種技術,問題是什麼? – sll
嗯,我不能重新鍵入''''''''''''''''''''''''''''''的智能感知參數描述,但如果它是錯誤的,我會收集它,或者指定的互斥量已經存在,那麼返回的互斥量就是對已經擁有的互斥量的引用。但是這引出了一個問題:「如果我提供虛假並且它還沒有擁有」,那麼我會提及一個無主的互斥體。我認爲這是正確的。 – John