2012-07-18 47 views
-1

我只是在C#中創建應用程序,但我不喜歡。我想讓應用程序運行一次。現在,如果我的應用程序正在運行,當我再次運行應用程序時,將啓動另一個應用程序。我想讓應用程序只運行一次,如果你想再次運行應用程序,不要創建另一個應用程序,而是啓動正在運行的應用程序。啓動應用程序只是一次C#

謝謝。

+0

谷歌呢? https://www.google.com/search?q=single%20instance%20application%20.net – 2012-07-18 13:05:30

+0

或這一個http://stackoverflow.com/questions/93989/prevent-multiple-instances-of-a-given -app-在網 – 2012-07-18 13:07:49

回答

0

你所指的概念是 「單實例應用程序」。 這通常通過命名的等待對象來實現,查看this articlethis one

1

我實現這個的方式是使用Mutex。應用程序的每個實例都會在啓動時嘗試鎖定互斥鎖。如果他們成功了,他們就會跑步;如果他們失敗了,他們不會。

無法運行的應用程序還會恢復並激活正在運行的實例。取決於它是WPF還是WinForms應用程序,這取決於不同的方式。

互斥方法的優勢在於它比使用FindWindow更不易發生競態條件。