线程 服务程序 Synchronize 窗口元素(100分)

  • 主题发起人 主题发起人 jshen
  • 开始时间 开始时间
J

jshen

Unregistered / Unconfirmed
GUEST, unregistred user!
我做一个基于tcpserver的系统托盘服务程序,我使用TServerSocket的stThreadBlocking模式,在server端的Thread中调用Synchronize对窗口元素进行操作,客户端反映是读取数据超时
我的通讯过程是先客户端发送命令给服务器,服务器的Socketthread接收到数据以后,对服务程序的主窗体进行操作,然后返回系统执行结果给客户端。
如果不对服务程序的窗口元素进行操作,一切正常。
这段程序在没有做成服务程序的时候的,调试一切正常的。
 
1.对窗口操作的procedure有无问题,会不会出现冲突或死锁
2.延长readtimeout
 
你在Synchronize中的代码是什么?
D6和D7的Synchronize有所不同,D6是使用SendMessage来实现同步操作,D7改用了一个叫ThreadLock的临界区来实现,如果死锁的话,???
 
就是直接的一个比如
mainfrm.Acaption.Caption:='text'
 
Anylib推出新版本.
独特的双数据源连接,支持主从表,是界面布局和报表的完美解决方案。
http://www.anylib.com
 
可以这样操作,只要这个控件存在。如果控件不存在的话,则死锁
不过建议你改用消息来实现,收到信息时,发个消息到主窗体,由主窗体来更改label的文字
 
控件是存在的!
否则,编译也不能通过了
 
后退
顶部