作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图创建一个运行时线程,但线程的行为很奇怪,代码没有 Canvas 引用。
procedure TBruteThread.Execute;
var
j: Integer;
begin
inherited;
FreeOnTerminate:=True;
for j:=1 to StrToInt(Form1.Edit1.Text) do begin
if Terminated then break;
Form1.Label2.Caption:=IntToStr(j);
end;
Form1.Label2.Caption:='Thread is destroyed';
Self.Terminate;
end;
最佳答案
您的代码的问题在于它违反了 VCL 线程规则。必须从主线程访问 VCL 组件。使用 Synchronize 或 Queue(TThread 的方法)在主线程上执行 GUI 更新。
其他的建议:
关于multithreading - 线程正在桌面上书写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254221/
我是一名优秀的程序员,十分优秀!