阅读背景:

如何解决多线程编程,子线程的数据源来源于主线程的问题?

来源:互联网 
大家好!最近又遇到一个新问题。当前主线程A接收各种类型的数据,然后根据数据类型分发给对应的处理模块对数据进行处理。其中,一个模块需要以5Mb/s的速度对数据进行比对,统计等操作(这个模块比较耗时)。然后问题来了,如果让这些模块同步运行,势必会造成界面卡顿,甚至假死的现象。如果使用基于委托的BeginInvoke,速度是有了,界面不会卡,但是由于这个方法本身的回调顺序不确定,我不能采用这种方法。因为我必须按循序处理数据。然后我又采用另开一个线程B处理这个模块,发现这个数据源的问题真的很难解决,因为两个线程异步执行,数据源的更换速度又很快,运行的过程中发现部分数据直接丢失了。后来查了资料,说线程直接最好避免依赖性。但是B线程的数据源必须来源于线程A,而且数据源只能从A获取,无法转到B线程中。今天又查了资料,说还有基于任务的异步,但是其原理我还没有看完,目前还在努力查资料中。 大家好!最近又遇到一个新问题。当前主线程A接收各种类型的数据,然后根据数据类型分发给对应的处理



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: