怎麼在thread中開啟一個窗體
有很多朋友不知道怎麼在thread中開啟一個窗體,總是說沒有反應,下面我就說說這方面自己的經驗。程式碼如下:
private void ThreadFunc()
{
//run your coding;
Form temp = new Form();
temp.Show();
//run your coding;
}
private void button1_Click(object sender, System.EventArgs e)
{
FormThread = new Thread( new ThreadStart( ThreadFunc ) );
FormThread.Start();
}
像上面的程式碼,若點選button按鈕,大家可以看到被建立的窗體閃了一下,就消失了,這是因為你線上程中建的窗體,所有的資源都是屬於這個執行緒的,所以當這個執行緒結束後,它的資源也被回收了,當然C#也就自動把窗體給關閉了。
正確的方法是用Invoke呼叫,程式碼如下:
private void ThreadFunc()
{
MethodInvoker mi = new MethodInvoker(this.ShowForm);
this.BeginInvoke(mi);
}
private void ShowForm( )
{
Form temp = new Form();
temp.Show();
}
private void button1_Click(object sender, System.EventArgs e)
{
FormThread = new Thread( new ThreadStart( ThreadFunc ) );
FormThread.Start();
}
相關文章
- 在新視窗開啟連結的方法是什麼?那怎麼設定全站連結都在新視窗開啟?
- phpcms模板 外部連結在新視窗開啟怎麼設定PHP
- windows 系統下 workerman 在同一個執行視窗中開啟多個 websocket 服務WindowsWeb
- 使用C#開啟新視窗關閉舊視窗的方法;winform中防止重複開啟多個相同子窗體C#ORM
- 怎麼在Windows8中開啟和關閉系統保護具體該怎麼操作Windows
- excel視窗獨立開啟不重疊 兩個excel檔案怎麼實現兩個視窗顯示Excel
- 開啟執行Adobe Photoshop 、AI等軟體時卡在啟動視窗怎麼辦?AI
- 怎麼在tomcat支援的網頁中開啟pptTomcat網頁
- Chrome中開啟ssh一種什麼體驗Chrome
- 如何在同一視窗開啟多個ExcelExcel
- 如何總是在新視窗中開啟資料夾?
- 在linux中怎麼讓程式開機自動啟動?Linux
- 想開發一個安全軟體,怎麼搞?
- iPhone 8plus照片格式怎麼在電腦中開啟 heic怎麼檢視iPhone
- Win10系統怎麼將“此處開啟PowerShell視窗”更改為“在此處開啟命令視窗”Win10
- 一個問題——在MDI窗體中新增控制元件後顯示子窗體控制元件
- 1.3.3.2. 步驟1:開啟一個命令視窗
- vue 內開啟一個新視窗,帶傳參!Vue
- Vue中在新視窗開啟頁面 及 Vue-routerVue
- Heic用什麼軟體開啟 heic格式圖片怎麼開啟
- win10怎樣開啟執行視窗快捷鍵_win10開啟執行視窗的4個方法Win10
- step檔案用什麼軟體開啟 step檔案怎麼開啟
- C#窗體應用中開啟控制輸出內容C#
- XP系統一開機便彈出新硬體嚮導視窗怎麼辦?
- wps演示中在工作列中顯示所有視窗怎麼設定
- 使用 Terminator 在一個視窗中執行多個終端
- C#防止WebBrowser在新視窗中開啟連結頁面C#Web
- win10提示怎麼關_win10關閉開啟軟體提示彈窗的方法Win10
- 怎樣在同一系統中啟動多個TOMCAT薦Tomcat
- Windows Phone 中WebBrowser開啟新視窗WindowsWeb
- win10怎麼開啟pkg檔案_pkg檔案在Windows10系統中如何開啟Win10Windows
- heic用什麼軟體開啟,怎麼檢視heic
- python怎麼做出一個軟體Python
- 在Linux中,記憶體怎麼看?磁碟狀態怎麼看?Linux記憶體
- 怎麼恢復win10預設視窗大小_win10開啟視窗的大小應該怎麼恢復預設Win10
- win10 開啟軟體無反應怎麼解決 w10開啟軟體沒反應怎麼辦Win10
- 怎麼來開啟Mac中的Root賬戶?Mac
- 原創:Android怎麼讓一個service開機自動啟動Android