我的问题是,当我使用标题栏上的关闭框关闭表单时,应用程序不会终止。
当我正在进行一些 I/O 操作时,我想退出应用程序而不执行 I/O 操作。
实际上,似乎程序已关闭,但任务管理器的进程列表显示并非如此。
如何强制取消 I/O 操作?
我向您推荐以下内容:
与其他点(2 或 3)一起使用的第一个点应该足够了。祝你好运!
关闭表单只会使表单不可见。但是,如果有任何进程在主线程或其他线程中运行,则应用程序不会终止。您必须确保所有资源都已关闭或处置。
您如何尝试关闭您的应用程序?
Application.Exit 只是要求通过消息循环关闭。它可能不会发生。
最好的方法是关闭您可能正在执行的所有非后台线程。不这样做将使您的流程保持运行。
您也可以尝试 Environment.Exit 或 Environment.FailFast。这就像杀死你的进程。
如果您的应用程序中运行了任何无限循环,请在启动它们之前让您的线程在后台线程中运行,那么它们将在应用程序退出时自动关闭。
尝试这样做:
Thread somethread = new Thread(...);
someThread.IsBackground = true;
someThread.Start(...);