使用互斥體防止多個應用程式實例
互斥體提供了一個強大的解決方案,可確保在任何給定時間只有一個應用程式實例處於活動狀態。這可以防止衝突並確保資料完整性。 本文探討如何使用互斥體實作這種單一實例應用程式行為。
原始程式碼範例嘗試透過檢查現有互斥鎖來防止多個實例。如果找到,它將關閉互斥鎖並通知用戶。 然而,這缺乏對已經運行的實例的明確指示。
更有效的方法是利用 Mutex
建構子的 out
參數來明確檢查建立成功:
<code class="language-c#">bool createdNew; Mutex m = new Mutex(true, "myApp", out createdNew); if (!createdNew) { // Another instance of myApp is already running. MessageBox.Show("myApp is already running!", "Application Already Running"); return; }</code>
此改進的程式碼使用 createdNew
布林變數。 true
值表示互斥體建立成功,確認此實例是第一個實例。相反,false
表示現有互斥鎖,這意味著另一個應用程式實例已經在運行。
此方法有效地防止多個實例,同時提供使用者友善的訊息。 嘗試啟動第二個實例的使用者會收到明確的通知,從而允許他們與現有應用程式互動。
以上是互斥鎖如何確保應用程式一次只運行一個實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!