如果在citrix环境中执行应用程序,我们将面临问题。该应用程序是用Delphi和.NET开发的客户端/服务器应用程序。后端中的数据库是Oracle。 许多客户的应用程序在citrix /终端服务器环境中运行。总的来说可行。现在的问题:
其中一些结合冻结的白色屏幕会收到大量的Windows“无响应”消息。据我了解,如果应用程序不再(在给定时间内)对消息循环作出任何反应,则Windows将自动完成此操作。 通常在长时间运行数据库操作或某些UI操作需要较长时间的情况下会发生这种情况。此处的默认值为5s(hungapptimeout)。
为避免“不响应”和冻结,我们已经在Windows API上调用了PeekMessage(Msg,0,0,0,PM_NOREMOVE)。 在本地运行时,可以很好地避免长时间运行的操作的“不响应”行为。
在终端服务器上(或至少在某些配置上),看起来根本没有考虑。
我们还尝试在终端服务器上没有成功的情况下增加/修改hungapptimeout(请参阅:https://blogs.msdn.microsoft.com/meason/2010/02/04/hungapptimeout)。
希望有人可以提供帮助,或者至少可以给出提示。