我有一個應用程序「myprogram.exe」,它調用dll中的函數和代碼,其中一個「myprogram.exe」調用的函數創建一個winform的新實例「MyForm.cs」,然後顯示它使用form.show();.如何避免多個應用程序實例?
我可以運行'n'個「myprogram.exe」實例,但我希望每個「myprogram.exe」實例只有一個「MyForm.cs」實例。
我遇到的問題是,甚至認爲我在「MyForm.cs」中使用互斥來創建互斥鎖,並且他們詢問它的實例是否已經在運行,有時它會創建另一個實例,儘管互斥鎖。
是否有另一種方法可以用來驗證「myprogram.exe」的實例是否已經創建了「MyForm.cs」實例。
請參閱http://stackoverflow.com/questions/229565/what-is-a-good-pattern-for-using-a-global-mutex-in -c/229567和http://stackoverflow.com/questions/819773/run-single-instance-of-an-application-using-mutex – Noldorin 2009-06-18 23:10:02
我猜你對互斥體做了錯誤;一般來說,如果互斥體沒有完成他們的工作,將會出現嚴重問題。 – Joe 2009-06-19 02:04:02