Delphi 中的计时器事件是否在它们自己的线程中发生?
Do timer events in Delphi happen in their own thread?
当一个Delphi定时器执行时,它不在主线程中吗?
procedure TMainForm.MyTimerTimer(Sender: TObject);
begin
MyModalDialog.StatusText.BeginUpdate;
MyModalDialog.StatusText.Text := 'timer fired...';
MyModalDialog.StatusText.EndUpdate;
end;
我想知道这里的崩溃是否是由于在主线程之外更新 GUI 元素造成的。
计时器将在主线程上执行。无需担心使用 Synchronize()。
计时器事件处理程序在创建它的线程的上下文中执行。通常它是主线程,但您可以在任何线程中创建一个计时器。
当一个Delphi定时器执行时,它不在主线程中吗?
procedure TMainForm.MyTimerTimer(Sender: TObject);
begin
MyModalDialog.StatusText.BeginUpdate;
MyModalDialog.StatusText.Text := 'timer fired...';
MyModalDialog.StatusText.EndUpdate;
end;
我想知道这里的崩溃是否是由于在主线程之外更新 GUI 元素造成的。
计时器将在主线程上执行。无需担心使用 Synchronize()。
计时器事件处理程序在创建它的线程的上下文中执行。通常它是主线程,但您可以在任何线程中创建一个计时器。