我有兩種形式:signin
和control_panel
。完成登錄後,我通過this.Hide()
函數隱藏此表單,同時我正在創建control_panel
表單的新對象,並通過newobj.Show();
顯示它。但是當我直接關閉control_panel
窗體時,我看到第一窗體線程仍在運行。我正在通過stop_debugging按鈕關閉它。我將如何同時關閉每個線程或整個程序退出。線程仍在C#中運行
2
A
回答
3
您的第一個表單的線程仍在運行,因爲您只撥打this.Hide
。所做的只是隱藏的形式;它沒有關閉它。相反,您需要使用this.Close
,這將關閉您的原始形式。
如果您想確保您的整個應用程序退出,並且在處理過程中關閉了可能仍然打開的任何表單,則可以使用表單代碼中任意位置的Application.Exit
方法。
編輯:爲了擴大對我最後的評論,你可能希望這樣的事情在你的Program.cs
文件:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SignInForm frmSignIn = new SignInForm();
if (frmSignIn.ShowDialog() == DialogResult.Yes)
{
//If the sign-in completed successfully, show the main form
//(otherwise, the application will quit because the sign-in failed)
Application.Run(new ControlPanelForm());
}
}
}
0
創建CONTROL_PANEL的CONTROL_PANEL表單屬性窗口FormClosed事件,並寫入以下line as
private void control_panel_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
相關問題
- 1. Python:線程仍在運行
- 2. Observable仍然在UI線程上運行
- 3. 線路仍在運行?
- 4. C#Winforms:BeginInvoke仍然在同一個線程上運行?
- 5. 運行的線程在C#
- 6. 運行C++線程()
- 7. Java線程:找出哪些線程仍在運行
- 8. 在``C``線程池中運行'POSIX`線程在``C``線程池中運行`函數指針`
- 9. 跨線程運行在C#中無效
- 10. 在C++類中運行線程
- 11. C++線程運行時間
- 12. 在gtest中運行線程
- 13. 在vb.net中運行線程
- 14. 在JavaFX中運行線程
- 15. PyQt5 - QThread:在線程仍在運行時被銷燬
- 16. C#在多線程上運行IronPython
- 17. 如何檢查進程是否仍在c內核中運行?
- 18. C#退出使用()塊,其線程仍在作用域對象上運行
- 19. C# - 創建新控件的線程仍在運行時的閉合表單
- 20. 當所有線程內核對象句柄關閉時,線程仍在運行
- 21. 爲什麼線程在釋放鎖之後仍然運行?
- 22. 判斷'elapsed'事件線程是否仍在運行?
- 23. PyQt線程在窗口關閉後仍然運行
- 24. PyQt的的QThread:被毀壞,而線程仍在運行
- 25. Netbeans問題:UI退出後是否有線程仍在運行?
- 26. 終止正在運行的線程C++的std ::線程
- 27. 在Objective C(Cocoa)線程中運行C代碼(適用於iOS)
- 28. 如何在多線程的C++運行過程中獲取線程跟蹤?
- 29. javascript alert如果進程仍在運行
- 30. python守護進程線程退出但進程仍在後臺運行
當我通過thhis.close()方法關閉窗體時,我的第二個窗體正在顯示。我不明白爲什麼? – 2010-11-25 10:38:24
我假設你是指當你關閉第一個表單時,你的應用程序退出了?這是因爲在`Program.cs`文件中,你有'Application.Run`設置爲你的第一種形式。每當第一個窗體關閉時,消息循環結束並退出應用程序。我強烈建議您將啓動邏輯(即顯示和處理登錄表單)放在Program.cs文件中,而不是將登錄表單設置爲啓動表單,因爲您計劃在沒有應用程序退出。 – 2010-11-25 10:43:42