0

我有一个由 RAD Studio 10.3.3 编译的 Delphi Windows64 应用程序,它有时会在调用 CheckSynchronize 后挂在主窗体的完成部分;在应用程序的真正结束时(后面没有调用任何内容)。

使用 Windows10 19.03 上的 ProcessExplorer,我可以验证 TMethodImplementationIntercept 和 gdiplus.dllGdiPlusStartup0x1c00 上的打开线程。

我没有实现任何自己的 Gdi 调用。Gdi 的集成似乎是由任何使用的组件或内部的 Delphi 功能引起的。

有没有办法本地化挂起 Gdi 线程的某些原因?

如果我在 CheckSynchronize 之后调用一些 ShowMessage,则应用程序终止得很好。就像在下面的例子中......

Untit MainForm;
....
initialization
finalization
CheckSynchronize;
TDialogService.ShowMessage('End');
end.

如果没有 ShowMessage,应用程序会挂在该线程上,但不是每次都挂起。如果我在没有 ShowMessage 的情况下以调试模式从 RAD Studio 调用应用程序,它也可以随时终止。

有什么帮助活动的想法吗?

4

0 回答 0