小编noe*_*oen的帖子

为什么ShowModal会锁定Synchronize?

我创建了一个通用线程类来控制一个进程表单,它在线程的构造函数中注入并设置为_progressForm.在Execute方法中,线程初始化表单并使用ShowModal()函数显示它,如下所示:

procedure TProgressThread.Execute;
begin
  ...
  ShowForm;
end;

procedure TProgressThread.ShowForm;
begin
  if Assigned(_progressForm) then
  begin
    Synchronize(
      procedure
      begin
        _progressForm.ShowModal();
      end);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

我无法理解的是为什么我的线程被锁定在Synchronize?在关闭进度表单之前,它不会返回.ShowModal不应该只锁定主线程吗?

delphi

4
推荐指数
1
解决办法
334
查看次数

标签 统计

delphi ×1