无法在Delphi XE6中使用TThread编辑TMemo

Srs

我有一个关于使用TThread将字符串添加到Tmemo的问题.ShowMessage可以显示此字符串。应用程序没有给出关于将字符串添加到Tmemo的任何错误,但没有添加到TMemo。所以这是我的代码:

procedure TThreadGet.Execute;
var
Filed:TStringList;
begin
Filed:=TStringList.Create;
Filed.LoadFromFile(Username1+'.dat');
Messaged:=Touser+':'+Filed.Text;
Form2.Memo1.Lines.Add(Messaged);//Doesn't give error.But Doesn't Add String.
Showmessage(Messaged);//Shows String Right.
end;
Filed.Free;
Terminate;
end;
大卫·赫弗南(David Heffernan)

对VCL组件的所有访问都必须在主UI线程中执行。例如,您可以使用TThread.SynchronizeTThread.Queue安排它。

这样做的主要原因是Win32窗口具有线程亲和力。它们也只能从创建它们的线程中安全访问。此属性非常有力地推动了单线程UI,而VCL设计就是这种方式。

在Win32中可以使用多线程UI,尽管正确执行起来比较棘手。VCL完全不支持该功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章