gpt4 book ai didi

c# - 如何确保 C# 控制台程序始终退出?

转载 作者:行者123 更新时间:2023-11-30 22:33:44 27 4
gpt4 key购买 nike

我编写了一个小型 C# 控制台应用程序,供许多用户在共享存储服务器上使用。它的运行时间应始终小于 3 秒左右,并且会在后台自动运行以协助用户真正尝试使用的另一个 GUI 应用程序。因此,我想确保程序始终完全退出,无论它是否抛出错误。

在 Application_Startup 中,我有以下基本结构:

try
{
// Calls real code here
}
catch
{
// Log any errors (and the logging itself has a try with empty catch around it
// so that there's no way it can causes problems)
}
finally
{
Application.Shutdown();
}

我认为使用这种结构,我的应用程序不可能成为僵尸进程。然而,在尝试推出该应用程序的新版本时,我反复发现我无法删除和替换可执行文件,因为“文件正在使用”,这意味着它卡在某人的计算机上,即使它应该只运行一段时间几秒钟,总是关机。

那么,我的应用程序如何成为具有我所拥有的代码结构的人们计算机上的挂起进程?我错过了什么?

编辑:添加“应用程序”。为清楚起见,解析 ShutDown()。

最佳答案

这里有两个选项:

  1. 您的控制台应用程序并没有真正在 3 秒内完成,而是需要更长的时间。您需要对其进行调试,看看是什么花费了这么长时间。
  2. 您的控制台应用程序需要 3 秒才能退出,但它每分钟由 GUI 运行一次,并且您有 40 多个用户,因此找到未使用的可执行文件的可能性很小。

如果是第一个,而且你不想调试它,你总是可以启动第二个线程,等待 3 秒,然后杀死整个进程。

关于c# - 如何确保 C# 控制台程序始终退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com