请教多线程?(100分)

  • 主题发起人 xuekunli
  • 开始时间
没有冲突的,重叠I/O是系统内核来处理接受数据的,你用多个线程来处理没有什么问题
不过我不知道你如何处分是哪路数据了?
 
:张无忌,麻烦你look你的hotmail-box,或者answer一下,
<fcdbtreeview的dataSources报错,可有人知道? >问题
 
对你说的这个问题,EVENT和重叠I/O一起使用才有用
 
TO mickeyzy1000:
我对数据库只用DELPHI自己的几个控件,其他的用的少,
 
:张无忌,有谁可能知道?
 
在数据处理线程中,从StreamList中获取要分析的数据和具体的路数,调用相应的函数来处理。
以前我采用的是循环不断的查询来看是否有数据,如有则处理,无则继续循环。CPU占用率为100%,
对主界面中的响应很慢。所以我想肯定有问题,应改一改。谢谢你的指点。还请多多帮助?谢谢
 
:张无忌:3x
 
如果使用四个Event,在线程中的waitfor怎么用或设计?
 
你用什么函数来读数据?
 
StreamList:TStreamList是我定义的。从StreamList取出数据使用了Copy函数。
 
请具体指点Event如何使用和设计?
 
WaitForMultipleEvents如果有事件被触发,他自动会把这个事件变成不发信号状态
他可以等待64个事件。这个函数返回的是接受到数据的哪个重叠结构,你等到数据后,
就可以用SETEVENT这个事件,让他进入信号状态,再用WSAGetOverlappedResult分析
结果
 
你是在DOS下做?
 
我使用了Event后,效率有明显改善,但总是有些冲突,使用前程序能正常运行,只是效率不高。
我想问题是不是出在Event上。
 
在windows2000下。
 
你可能使用上可能有问题,我不能看你的代码,不好说
 
那用重叠没什么问题,用完成端口就更爽,效率更高,不过就是麻烦了点
 
谢谢张无忌的帮助!我正在修改我的代码,由于要改的地方较多。改好了一定告诉你。再一次
感谢!!
 
利用Event基本上解决了程序的效率问题。但数据速率快时处理四路数据要出错,而较慢时问题不大。
谢谢各位,特别是张无忌的帮忙!
 
顶部