C#中WinForm法式加入辦法技能總結。本站提示廣大學習愛好者:(C#中WinForm法式加入辦法技能總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中WinForm法式加入辦法技能總結正文
本文實例總結了C#中WinForm法式加入辦法技能。分享給年夜家供年夜家參考。詳細剖析以下:
在c#中加入WinForm法式包含有許多辦法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他們各自的辦法紛歧樣,上面我們就來具體引見一下。
1.this.Close(); 只是封閉以後窗口,若不是主窗體的話,是沒法加入法式的,別的如有托管線程(非主線程),也沒法清潔地加入;
2.Application.Exit(); 強迫一切新聞中斷,加入一切的窗體,然則如有托管線程(非主線程),也沒法清潔地加入;
3.Application.ExitThread(); 強迫中斷挪用線程上的一切新聞,異樣面對其它線程沒法准確加入的成績;
4.System.Environment.Exit(0); 這是最完全的加入方法,不論甚麼線程都被強迫加入,把法式停止的很清潔。
上面看一些實例
當我翻開一個子窗體,停止某項操作時,假如字窗體中有輪回操作時。假如運轉中我封閉子窗體,發明窗體固然封閉了,但子窗體中的輪回法式卻沒有加入,一向在 履行,並占用著體系資本,直到輪回停止,才真實的釋放資本。雖然我在字窗體的Closed事宜中寫了以下代碼:
private void frmFileDisposal_Closed(object sender, System.EventArgs e)
{
this.Dispose();
this.Close();
}
後來從查MSDN和從網上查材料才得知,Dispose()辦法,固然能釋放以後窗體的資本,卻不克不及強迫停止輪回,要想強迫凸起以後法式要用:System.Environment.Exit(int exitcode)辦法;該辦法:終止以後過程並為基本操作體系供給指定的加入代碼。
以下則成績處理:
private void frmFileDisposal_Closed(object sender, System.EventArgs e)
{
System.Environment.Exit(System.Environment.ExitCode);
this.Dispose();
this.Close();
}
或許把它放到事宜裡:
while (MessageBox.Show("加入以後窗體?", "", MessageBoxButtons.YesNo)
== DialogResult.No)
...{
for(int j=1; j<=i; j++)
...{
listBox1.Items.Add(j);
}
}
System.Environment.Exit(System.Environment.ExitCode);
還有一種辦法:
System.Threading.Thread.CurrentThread.Abort();
或許 Process.GetCurrentProcess().Kill()
或許 Application.ExitThread();
或許 Application.ExitThread()
不外以上辦法,都是強迫直接加入了全部法式,不只是封閉子窗體。能夠還會激發某些成績。
我感到最好辦法的就是,在子窗體的Closing事宜中,寫輪回加入前提,如許便可以免某些未知的毛病,並且可以只封閉子窗體,並釋放子窗體占用的資本。
Application.Exit(); 辦法停滯在一切線程上運轉的一切新聞輪回,並封閉運用法式的一切窗口。
Application.Exit 是一種強行加入方法,就像 Win32 的 PostQuitMessage()。它意味著廢棄一切新聞泵,睜開挪用客棧,並將履行前往給體系。
願望本文所述對年夜家的C#法式設計有所贊助。