多线程与 GUI 的问题(20分)

  • 主题发起人 主题发起人 QSmile
  • 开始时间 开始时间
Q

QSmile

Unregistered / Unconfirmed
GUEST, unregistred user!
我写一个串口通讯的程序。在后台线程接收到数据,它就直接写到 界面的 Memo 里
但我在资料上看到。写多线程程序后台线程要操作 GUI 必须使用
Synchronize() 方法而且调用的函数还不能调用子函数。
各位大侠是不是这样。
 
Synchronize(Fun)
Fun可以調用子函數。
還可以發線程消息
 
操作 GUI 必须使用Synchronize() 方法,这样不会出错。
 
同意以上两位的看法,delphi的vcl控件不是线程级安全的,用synchronize()可以规避风险。
 
到底可不可以调用子程序
 
同意积步!
 
我这样用
TMyThread.DoSomeThing
begin
frmMain.DoSomeThing(m_Test);
end;

在线程里;
....
m_Test := 0;
Synchronize(DoSomeThing);
这样可不可以
 
多人接受答案了。
 
后退
顶部