0

我正在使用 c# 在 Windows 应用程序中编程。

我想使用 this.close() 关闭应用程序;

我的应用程序窗口已关闭。但我尝试删除该应用程序文件,它显示“该文件被另一个进程使用”?

注意:我也在该应用程序中使用 backgroundrunner。如果它对上述问题有任何问题?

4

3 回答 3

1

在退出 main 方法之前尝试调用此函数。

workerThread 是后台工作者

public void Abort()
{
    if (workerThread != null)
    {
        workerThread.Abort();
        workerThread = null;
    }
}
于 2013-03-28T07:32:54.993 回答
1

当您使用 时this.Close(),您正在关闭窗口窗体而不是应用程序。

即使您明确关闭表单,您在应用程序中发出的后台运行程序仍将在后台运行。这就是你收到消息的原因。

如果忙于进程,您可能还需要检查后台工作人员的类型,并在关闭应用程序之前优雅地处理它以终止/完成请求。前台线程会Application.Exit继续终止,后台不会。

于 2013-03-28T06:09:05.913 回答
1

尝试使用Application.Exit关闭您的应用程序。

通知所有消息泵它们必须终止,然后在处理完消息后关闭所有应用程序窗口。

于 2013-03-28T05:52:26.750 回答