求解: 用了线程, Memo1就显示不了了。(50分)

  • 主题发起人 主题发起人 visli
  • 开始时间 开始时间
V

visli

Unregistered / Unconfirmed
GUEST, unregistred user!
Memo1放在PageControl1的TabSheet1上,
在一个新线程中,有对Memo1的操作,如不停的添加行。
如果在运行时PageControl1的ActivePage打开的是TabSheet2(即非Memo所在Page),
则运行线程后,再点PageControl1的Page到TabSheet1,这时就看不到Memo1了。
请问这如何解决?
 
添加刷新和Application.ProccessMessages;(记不清了,可能是这样的)
 
大部分VCL控件是不支持多线程操作的,你有没有用线程同步?
 
Application.ProcessMessage 是让UI线程处理消息的,可以在主程进行循环时响应其它消息时使用.
 
TThread.Synch..(?)
 
线程同步
 
在线程中调用需要用到VCL的方法时,加上synchronized(你的方法)应该就可以了。
 
如果把线程改成remote data module,在rdm 进行上述操作该怎么同步???
rdm 为多线程模式!
 
后退
顶部