2016-02-26 71 views
-2

我試圖處理進程退出(當用戶從​​任務管理器中終止進程)如下。但是當我打開exe時,它會打開同一個EXE的多個實例。多進程實例

Process myProcess = null; 
    String fileName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; 

    myProcess.StartInfo.FileName = fileName; 
    myProcess.StartInfo.CreateNoWindow = true; 
    myProcess.EnableRaisingEvents = true; 
    myProcess.Exited += new EventHandler(myProcess_Exited); 
    myProcess.Start(); 
    Application.Run(new launchAuthentication()); 


private static void myProcess_Exited(object sender, System.EventArgs e) 
{ 
    log.Info("myProcess_Exited"); 
} 

如何預防呢?

+3

所以每當運行過程中它開始自己的另一個實例,然後啓動另一個實例然後......你能看到問題出現在哪裏嗎?你剛剛手動寫了一個叉式炸彈嗎? –

+0

可能重複[什麼是創建單實例應用程序的正確方法?](http://stackoverflow.com/questions/19147/what-is-the-correct-way-to-create-a-single-實例應用程序) – AXMIM

+0

另外dupplicated是「[如何強制C#.net應用程序在Windows中只運行一個實例嗎?](http://stackoverflow.com/questions/184084/how-to-force-c-sharp-net -app可以運行僅此一個實例,在窗口)」 – AXMIM

回答

0

它只是一個循環,你告訴你的進程「開始myProcess,然後開始myProcess myProcess,開始myProcess。」