示范:窗体的退出

楼主
示范:窗体的退出
[CODE]
       /// <summary>
       /// Event processor of OnClosing event
       /// </summary>
       /// <param name="sender">sender object</param>
       /// <param name="e">event arguments</param>
       private void FormWithAppConfigurationOnClosing(object sender, CancelEventArgs e)
       {
           // TODO: Exit some loops and release resources
       }

       /// <summary>
       /// Event processor of OnClosed event
       /// </summary>
       /// <param name="sender">sender object</param>
       /// <param name="e">event arguments</param>
       private void FormWithAppConfigurationOnClosed(object sender, EventArgs e)
       {
           this.Dispose();
           this.Close();
           Process.GetCurrentProcess().Kill();
       }

       /// <summary>
       /// Event processor of menuItemExit OnClick event
       /// </summary>
       /// <param name="sender">sender object</param>
       /// <param name="e">event arguments</param>
       private void MenuItemExitOnClick(object sender, EventArgs e)
       {
           menuItemExit.Enabled = false;
           menuItemExit.Text = "Closing";
           this.Close();
       }

[/CODE]
1楼
[P]这个退出方法和application.exit   this.close有什么区别呢?[/P]
2楼
[QUOTE][b]下面引用由[u]ymjj[/u]发表的内容:[/b]
这个退出方法和application.exit   this.close有什么区别呢?[/QUOTE]

Application.Exit() 的作用是(1)停止所有线程的消息循环;(2)关闭应用程序的所有窗体。

注意:Application.Exit()并不强制退出应用程序,虽然它往往也能起到退出应用程序的效果。

问题:对多线程的应用程序,如果你仅仅调用Application.Exit(),虽然窗体都关闭了,但线程可能仍驻留在内存中。

解决方案:通过Form.Close()退出窗体,并且在Form OnClosing 事件的处理函数中释放资源并显式地终止线程,在Form OnClosed 事件的处理函数中主动调用Dispose使窗体的所有控件被.Net的GC回收。

电脑版 Page created in 0.0869 seconds with 4 queries.