A ainiyang Unregistered / Unconfirmed GUEST, unregistred user! 2009-04-03 #1 一个程序调用了我的DLL窗体。上面用TIMER每秒涮一下信息。但是当主程序查询时。TIMER就失效了。等主程序执行完。TIMER才可以正常。请问下这是什么原因造成的?我如何解决。解决问题是关键。大大如果没大多时间。就告诉我一下。如何解决吧。关键主程序不是我写的。我只是提供DLL
一个程序调用了我的DLL窗体。上面用TIMER每秒涮一下信息。但是当主程序查询时。TIMER就失效了。等主程序执行完。TIMER才可以正常。请问下这是什么原因造成的?我如何解决。解决问题是关键。大大如果没大多时间。就告诉我一下。如何解决吧。关键主程序不是我写的。我只是提供DLL
A ainiyang Unregistered / Unconfirmed GUEST, unregistred user! 2009-04-03 #3 比如说我用TIMER计时。每秒写入一个随机数到MEMO1。如果这时候我连接数据库。做一个大的查贸易。TIMER就会顿住。等查询完成后。才继续添加。有没有方法实现程序运行大的查询或者其它会顿住界面的工程时。TIMER能继续使用
比如说我用TIMER计时。每秒写入一个随机数到MEMO1。如果这时候我连接数据库。做一个大的查贸易。TIMER就会顿住。等查询完成后。才继续添加。有没有方法实现程序运行大的查询或者其它会顿住界面的工程时。TIMER能继续使用
Z znxia Unregistered / Unconfirmed GUEST, unregistred user! 2009-04-03 #4 但是当主程序查询时。TIMER就失效了。等主程序执行完。TIMER才可以正常。-----------------主程序和Ttimer是用的一个进程,当然如此。
L liuls Unregistered / Unconfirmed GUEST, unregistred user! 2009-04-03 #5 你的查询放到线程里去, 估计就可以了. 因为, TTimer 的事件执行也是通过 Windows 消息队列来传的, 你占用了主线程. 其它消息就发不出去了~
L liyinwei Unregistered / Unconfirmed GUEST, unregistred user! 2009-04-05 #8 关于多线程的例子看一下 Delphi 自带的 Demo 就有了。
W wql Unregistered / Unconfirmed GUEST, unregistred user! 2009-04-13 #10 其实time一直在执行,只是显示的消息被延迟了!呵呵!例如98下的时钟显示程序,按Ctrl_Alt_Del后,屏幕被锁定,但是记数仍然继续!
谢 谢方 Unregistered / Unconfirmed GUEST, unregistred user! 2009-07-06 #11 Timer 是通过发送消息到句柄来完成触发事件的动作的。所以,可以把查询写在线程中,就能解决问题。
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2009-07-06 #12 如果主程序你不能改,那个查询又放在主线程中,而你只能做DLL被调用。、那么你即使在dll中使用多线程,依然无法及时更新主线程中的VCL窗口。 所以你必须要求主线程做修改。那个查询必须放在非主线程中进行,否则,即使你强行修改主线程中的刷新信息,也是极度不安全的。
如果主程序你不能改,那个查询又放在主线程中,而你只能做DLL被调用。、那么你即使在dll中使用多线程,依然无法及时更新主线程中的VCL窗口。 所以你必须要求主线程做修改。那个查询必须放在非主线程中进行,否则,即使你强行修改主线程中的刷新信息,也是极度不安全的。