2017-02-10 41 views
-1

我有一個問題,我使用C#和窗體窗體在Visual Studio上創建了應用程序,但每次運行時,如果應用程序關閉(無論是由人員手動還是到達結尾)它會繼續運行在計算機的進程中,所以如果我打開和關閉應用程序3次,將激活3個同名進程。我怎樣才能防止這種情況發生?到目前爲止,我關閉它的唯一方法是去窗口任務管理器並手動關閉它,這是一個痛苦...應用程序退出後在計算機上運行的進程

任何想法?

+0

需要看你的代碼來告訴你爲什麼。 – itsme86

回答

1

,如果你想先殺死從應用程序的所有進程,然後退出,那麼你需要殺死線程在後臺從應用

Application.ExitThread(); 

,然後退出

Environment.Exit(); 
+0

謝謝,這工作完全正常:) – dreamheart

+0

我很高興知道..請標記爲答案.. – Saif

-1

那麼,根據這個問題你可以檢查您的應用程序是否在應用程序啓動時運行。這樣,你只有當它沒有運行啓動過程:

I'm要檢查例如記事本:

Process[] pname = Process.GetProcessesByName("notepad"); 
if (pname.Length == 0) 
{ 
    //The application is not running. Start your process here 
} 
else 
{ 
    //Your application is running. Do nothing 
} 
+0

問題不在於進程的多個實例正在運行,但該進程不會退出時,它應該。除了在後臺運行的線程之外,我想不出任何其他原因。 – Mark

0

您可以使用賽義夫的答案,這迫使後臺線程中止,但我建議你更好地管理你的線程。如果你的線程運行了很長一段時間,你應該有一個標誌(一個布爾值,可以從你的代碼中的任何地方訪問)告訴線程它們應該停止運行。這比

Application.ExitThread(); 

一個更安全的方法,因爲它可以讓你刷新並關閉流,斷開插座連接或整理無論你在你的線程做。

相關問題