delphi多线程怎么解决数据处理速度跟不上数据接收的速

 我来答
dodolon
2013-12-12 · TA获得超过7713个赞
知道大有可为答主
回答量:4477
采纳率:84%
帮助的人:2152万
展开全部
使用多线程是一种方法,有时数据处理算法的效率也很讲究,先看看自己的数据处理代码能不能改进。缓存数据只能延缓数据的处理,解决处理跟不上接收的矛盾,不一定能提高效率。要用多线程处理数据,可考虑使用队列,代码比较容易写。也可以像一些服务程序一样,有请求就开一个服务线程,对你的问题就是接收到一个数据就请求一个线程,线程处理完一个数据后就待命,等待下一个请求,这种方法代码比较复杂,要做线程管理和分配。
至少让我看一眼
2013-12-11 · TA获得超过451个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:241万
展开全部
首先将数据缓存在一个缓存文件中,然后分段处理,然后删除。Internet Explorer就是这么做的。或者也可以将下载的数据放在一段动态生成的内存中。然后使用PostMessage的方式将内存的地址放置在WParam,或是LParam中,发送到处理数据的线程中,并在将处理后释放掉(当然你需要在处理数据的线程中添加一个消息循环,并需要在程序退出时向此线程发送WM_QUIT消息)。这两种做法各有利弊。总之,可以参考数据传输的速度与数据处理的速度,以及数据处理的量来决定来决定使用哪一种方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式