【发布时间】:2019-04-02 07:35:53
【问题描述】:
我正在 Windows Server 2008 R2 中运行 Delphi Windows 应用程序,它将向 Windows 服务发起请求以填充数据。执行此任务时,应用程序将忙于应用程序标题栏上的无响应消息。此时如果我们关闭应用程序,应用程序将终止,并且不会显示任何消息“应用程序没有响应。如果您等待,程序可能会再次响应”
但是在 Windows server 2016 中运行的应用程序在关闭应用程序时显示“应用程序没有响应。如果您等待,程序可能会再次响应”。
谁能建议如何在不更改代码的情况下禁止显示此消息,并允许用户在想要关闭应用程序时关闭应用程序?
disableProcessWindowsGhosting;代码不应包含在应用程序中。
【问题讨论】:
-
这就是发明线程的原因。
-
不治标,治本。即把繁重的工作放到一个线程中,确保工作可以中止。
-
不幸的是,这是一个遗留应用程序,我们没有代码。到目前为止,此应用程序位于 Windows Server 2008 R2 中,现在我们已迁移到 2016 服务器。我正在寻找任何使应用程序行为与 2008 Server 相同的服务器级别更改。
-
熟悉 Windows 消息系统。然后研究多线程。然后您将了解到,如果没有代码,您想要做的事情是不可能的。该消息是不言自明的 - 您的应用程序没有响应 Windows(可能它在执行一项大任务时卡住了),因此 Windows 会在其上抛出该消息。