如果 Delphi 代码是用 synchronize 编写的,以序列化对 VCL 主线程的访问,但是这段代码在非 VCL 应用程序中使用,它会与应用程序的主线程同步还是完全没有效果?
例子:
procedure TMyThread.Execute;
begin
// ... other code
Synchronize(SomeMethod);
// ...
end;
让我们假设
- 它是一个非 VCL 应用程序,它有一个在无限循环中执行的主线程(或直到终止)
- 主线程不
CheckSynchronize
直接调用或在 WakeMainThread 处理程序中调用 - 辅助线程运行并执行 Synchronize(SomeMethod) 就像上面的示例一样
线程会挂在 Synchronize(SomeMethod) 行上吗?