delphi多线程怎么解决数据处理速度跟不上数据接收的速度
1个回答
展开全部
这种问题必须要使用多线程处理,
你可以用线程池来处理,这个开销比新创建线程要小一些,需要你自己写一个线程池处理(重点是可以快速取到空闲线程),
关于你自己的问题
1 接收事件触发接收过程,进行数据预处理
我不知道你的预处理是否是必须的,而且必须是在线程处理之前完成,
我认为接收事件触发接收过程,收到数据马上放入主线程(也就是我说的线程池管理线程),之后你的进程继续等待下一波数据,而子线程开始处理数据。
2 数据预处理后,发出自定义事件或者消息触发数据解算线程,解算最大耗时200-250ms,最小100ms
没必要定义什么自定义消息,你可以在主线程中,等待子线程完成计算,然后做最后的处理。
3 解算后的数据发出,其时间包括在2中的最大耗时时间内
计算后的数据需要发出? 那一样的道理,按照顺序发出即可。
你可以用线程池来处理,这个开销比新创建线程要小一些,需要你自己写一个线程池处理(重点是可以快速取到空闲线程),
关于你自己的问题
1 接收事件触发接收过程,进行数据预处理
我不知道你的预处理是否是必须的,而且必须是在线程处理之前完成,
我认为接收事件触发接收过程,收到数据马上放入主线程(也就是我说的线程池管理线程),之后你的进程继续等待下一波数据,而子线程开始处理数据。
2 数据预处理后,发出自定义事件或者消息触发数据解算线程,解算最大耗时200-250ms,最小100ms
没必要定义什么自定义消息,你可以在主线程中,等待子线程完成计算,然后做最后的处理。
3 解算后的数据发出,其时间包括在2中的最大耗时时间内
计算后的数据需要发出? 那一样的道理,按照顺序发出即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询