【发布时间】:2017-03-12 06:50:46
【问题描述】:
我的应用有一些随机锁定显然是没有原因的。
正如我在 embarcadero 网站上发现的,我发现一些文档可能是一些等待结束的线程。
发生这种情况时,我从 IDE 暂停程序执行并转到线程列表。
我非常坚持这一点。我怎样才能走得更远?
【问题讨论】:
-
您的代码中存在我们看不到的缺陷。
标签: multithreading delphi debugging
我的应用有一些随机锁定显然是没有原因的。
正如我在 embarcadero 网站上发现的,我发现一些文档可能是一些等待结束的线程。
发生这种情况时,我从 IDE 暂停程序执行并转到线程列表。
我非常坚持这一点。我怎样才能走得更远?
【问题讨论】:
标签: multithreading delphi debugging
我怎样才能走得更远?
如果您的应用程序是使用调试信息构建的,那么您可以双击任何线程,您将被带到有问题的源代码行。您还将获得一个调用堆栈,告诉您在每个线程中通向“当前行”的调用链。
当然,在您的情况下,等待链提供了从哪里开始调查问题的绝佳线索。这就是事情变得棘手的地方,只有您才能进一步调试,因为只有您拥有所有源代码。
但作为一个概述:
WaitForSingleObject 或 TEvent.Wait 或 TThread.WaitFor。
可能的问题包括:
try..finally。)在上述所有情况下,您都需要了解您的错误以便修复它。
【讨论】: