gpt4 book ai didi

windows - 为什么我的 Windows 程序死机时会卡住(蓝灰色)窗体或窗口?

转载 作者:可可西里 更新时间:2023-11-01 11:09:22 24 4
gpt4 key购买 nike

我的 Windows 7 上的 Delphi 程序(不适用于 .NET)似乎连续运行了几天,然后程序有点卡住,所有窗口都涂上蓝灰色,就好像它的窗口被禁用一样。您根本无法再控制该程序,而必须终止其进程并重新启动它。您不需要重新启动系统本身。

有没有人经历过这个或类似的事情?如果是这样,您是如何解决或试图解决它的?

谢谢,

最佳答案

您的问题背景非常模糊。我们没有关于您的应用程序的任何信息,甚至它的设计和架构。

尽管如此,我的(通用)建议如下:

  • 如果您的应用程序不是多线程的,请在后台线程中执行该过程,然后让主线程准备好处理 GDI 消息;
  • 如果您的应用程序是多线程的,请注意来自后台线程的所有 VCL 访问都是通过 Synchronize 调用进行的;
  • 如果您的应用程序是多线程的或使用计时器,请注意没有方法是可重入的(在某些情况下,您可能会遇到 race condition );
  • 寻找任何内存泄漏;
  • 使用程序执行的详细日志记录,logging all exceptions上升,猜测程序挂起的上下文(它也可以在客户端用于寻找竞争条件);
  • 下载名为 ProcessExplorer 的出色免费工具(现在由 Microsoft 托管),并检查卡住程序的状态:您将看到有关线程、CPU 使用、内存、网络、库、句柄的详细信息 - 这是任何严肃调试的必备条件 - 尤其是跟踪 < em>GDI 处理 泄漏(数量应该保持稳定);
  • 如果您还没有检查,请查看全局 Windows 系统事件日志:此处可能有一些信息;
  • 可能是第三方组件或库导致进程挂起:尝试隔离可能导致此挂起的代码部分。

我已经运行了几个月的 Delphi 应用程序,没有任何问题。问题肯定出在应用程序代码中,而不是出在 Delphi 架构中(它的 RTL 和 VCL 非常稳定)。

关于windows - 为什么我的 Windows 程序死机时会卡住(蓝灰色)窗体或窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7907805/

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