我是否需要从TTimer事件中调用Synchronize?

Art*_*tik 2 delphi synchronization ttimer

当我从a访问全局变量或VCL时TTimer,是否需要使用Synchronize?我使用相同的变量和对象TThread,我已经使用同步.

iMa*_*ari 11

TTimer的OnTimer事件在主线程下执行.您不必在该事件内同步对VCL的访问

  • 好吧,更清楚一点,`TTimer.OnTimer`事件在创建`TTimer`实例的线程的上下文中触发,因为`TTimer`在内部创建一个`HWND`,因此具有线程关联.如果恰好是主线程,那么`OnTimer`事件将在主线程中运行,是的.但是如果`TTimer`是在主线程之外创建的,那么你必须同步. (8认同)