【发布时间】:2011-03-02 19:33:46
【问题描述】:
我有一个 D2006 应用程序,它在选项卡上包含一个页面控件和各种网格等。当我调整主表单的大小时(它会波及并调整表单上与某物对齐的几乎所有内容),我会遇到很长的延迟,比如几秒钟。应用程序冻结,空闲处理程序没有被调用,正在运行的线程似乎也暂停了。
我尝试在发生这种情况时暂停 IDE 中的执行,试图在麻烦的代码中中断执行,但 IDE 不接收消息。
显然,我不希望有人指出一些错误的代码,但我正在调试可能对我有帮助的方法。我在整个应用程序中都有大量的执行时间代码,并且长时间的延迟不会出现在任何数据中。例如,主窗体 OnResize 处理程序的执行时间最短。
【问题讨论】:
-
那么这些线程正在等待主线程,可能是因为
Synchronize。 -
“网格”中有什么或者是什么? DBGrid/StringGird?
-
@Despatcher - 它们是 TDrawGrid 和 TStringGrid。 DrawGrids 都是从内存中的东西渲染出来的
-
不要忘记 AQTime,它是一个很棒的分析器。 Rad/Delphi XE 附带一个精简版,我认为有试用版。这是商业的,值得。
标签: delphi forms freeze delphi-2006 onresize