申请不会终止

时间:2012-05-05 16:46:28

标签: c# .net winforms

我的问题是,当我使用标题栏上的关闭框关闭表单时,应用程序不会终止。

当我处于某些I / O操作的中间时,我想退出应用程序而不执行I / O操作。

实际上似乎程序已关闭,但任务管理器的进程列表显示它不是。

如何强行取消I / O操作?

4 个答案:

答案 0 :(得分:2)

我建议您使用以下内容:

  1. 将I / O操作更改为异步模式(使用BeginXXX,EndXXX),停止它们会更容易!
  2. 使用同步事件来停止所有线程。
  3. 跟踪所有线程并调用Kill方法。
  4. 与其他一个(2或3)一起使用的第一个点应该足够了。 祝你好运!

答案 1 :(得分:1)

关闭表单只会使表单不可见。但是,如果主线程或其他线程中正在运行任何进程,则应用程序将不会终止。您必须确保关闭或处置所有资源。

答案 2 :(得分:1)

您是如何尝试关闭申请的?

Application.Exit只是要求通过消息循环关闭。它可能不会发生。

最好的方法是关闭您可能执行的所有非后台线程。不这样做会使您的流程继续运行。

您还可以尝试使用Environment.Exit或Environment.FailFast。这就像杀死你的过程一样。

答案 3 :(得分:1)

如果您的应用中有任何无限循环运行,请在启动它们之前使用后台线程运行,然后在应用程序退出时自动关闭它们。

尝试这样做:

Thread somethread = new Thread(...);
someThread.IsBackground = true;
someThread.Start(...);