gpt4 book ai didi

delphi - 我可以在非 GUI 线程中读取 VCL 控件的属性吗?

转载 作者:行者123 更新时间:2023-12-03 14:57:51 25 4
gpt4 key购买 nike

如果线程异步读取Delphi中VCL控件的信息,线程安全吗?

例如。

procedure TMyThread.Execute;
var bOK:Boolean;
iOK:Integer;
begin
while not terminated do
begin
bOk:=MyForm.cbCheckBox.Checked;
iOK:=MyForm.Left;
sleep(20);
end;
end;

如果它不是线程安全的,当复选框更改其属性时,我应该如何捕获事件。

最佳答案

不,这不安全。您的代码可能会导致创建的窗口句柄与错误的线程有关联。

不要使用 GUI 来存储应用程序状态。使用 GUI 显示该状态的 View 。一旦你将状态与 View 分开,你就已经回到家了。您的工作线程可以使用底层状态,而无需接触 GUI。

关于delphi - 我可以在非 GUI 线程中读取 VCL 控件的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14181276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com