【问题标题】:C# in Windows Application Closing or ExitWindows 应用程序关闭或退出中的 C#
【发布时间】:2012-03-21 10:15:34
【问题描述】:

当我点击 X(右上角的窗口关闭按钮)是 application.exitthis.close 隐式运行?

因为每次我更改程序并编译它,因为它正在被另一个进程使用而无法编译,所以我每次都必须在windows任务管理器中杀死它。

因此,我认为我的应用程序并没有真正关闭/正确退出。

namespace FrontEnd_Offline
{
    public partial class Main_Usr : Form
    {
        public Main_Usr()
        {
            InitializeComponent();
            this.IsMdiContainer = true;
        }

        private void barButtonItem_CreateOrdre_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void barButtonItem_OrdreListe_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Ordre_Liste f = new Ordre_Liste();
            f.MdiParent = this;

            f.Show();
        }
    }
}

【问题讨论】:

  • 您是否在应用程序中运行任何后台线程?请看:stackoverflow.com/questions/465306/…
  • 谢谢你与stackoverflow.com/questions/465306/的不同之处在于我可以在任务管理器上杀死我的程序。

标签: c# winforms exit


【解决方案1】:

这是有条件的,但这不是问题。您的所有表单都已处理,但您的代码并未停止运行。造成这种情况的常见原因:

  • 在未将其 IsBackground 属性设置为 true 的情况下启动线程,并且不确保在主窗体关闭时终止线程。
  • 在您的代码中使用 Application.DoEvents()。

您可以使用 Debug + Break All,然后使用 Debug + Windows + Threads 来查看哪些代码仍在运行。那里显示的某些线程不是您的线程,因此请避免追逐那些没有显示良好堆栈跟踪的线程。

【讨论】:

    【解决方案2】:

    您尝试调用base.dispose(true) 方法以完全退出应用程序。您可以将此代码写入关闭按钮的事件中。即使它可能不被认为是最好的编程实践。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      相关资源
      最近更新 更多