C# 多线程 怎么能够让他们并行执行,而不是像后台线程那样执行。

我的需求是这样子的,1:在处理的数据的时候先接收行情数据,接收到行情数据开始进行相应处理,但是接收行情的动作还是要走的,不能因为要在进行完相应处理才继续接收行情。要满足条... 我的需求是这样子的, 1:在处理的数据的时候先接收 行情数据,接收到行情数据开始进行相应处理,但是接收行情的动作还是要走的,不能因为要在进行完相应处理才继续接收行情。 要 满足条件即处理又要接收行情。 请问 用多线程该怎么做? 或者 给出出谋划划策。。 展开
 我来答
IoSaber
2013-10-16
知道答主
回答量:5
采纳率:0%
帮助的人:7.1万
展开全部
其实youngking87的回答,这个思路是可以的了,可能是楼主你没明白到底什么意思。
我举个例子让你好理解一些吧。

汽车工厂,仓库,汽车销售公司。

汽车工厂会不停的制造车辆,销售公司会不停的把还在仓库里的车子拿出去卖

在这个例子里,汽车工厂是第一个线程,销售公司时第二个线程,他们同时进行。
而仓库,就相当于是一个List。
工厂制造一台车,List就增加一条数据,销售公司每卖出一台车,List就相应删除一条数据。
工厂不会因为销售公司不卖车,或者卖太快,而不继续生产
反过来,销售这边如果没有车卖了,他会一直查看仓库里有没有车。

所以回过来说解决思路,new一个List全局变量,保证两个线程都能访问你的List。
同时new两个线程毕誉,每个线程里面都是 while(true) 循环,是死循环,保证时时性。
第一个线程,在while语句里时时接收 行情数据,存到List
第二个线程,在while语句皮带里,判断List是否有数据,燃数芦有的话就循环处理List中的第一条,没有的话就一直判断。注意在这里不能用for语句循环list,因为list由于在第一个线程中数据量会不停增加,所以这里执行for语句的话可能会报错,每处理完成一条,就把List中那条数据删掉。如果想保存处理记录,可以写成log文件或者存入数据库,之后while语句继续执行。
亚马逊选品管家
2013-10-16 · TA获得超过643个赞
知道小有建树答主
回答量:805
采纳率:100%
帮助的人:283万
展开全部
直接两散汪个线程即可,然后再建立一个List用来存放数据,一个线程不停猜樱取数据放在list里,另一个线程从list里取数据穗掘丛处理即可。不过访问list里的数据时要做同步访问,以为那个是临界区。
追问
这样子可以? 因为  要处理的行情数据是实时的, 接收到行情就处理   但是接收行情数据的操作不能停止啊,两个线程执行的先后顺序不是 线程1执行,同步执行线程2  当线程2执行完后才继续执行线程一么? 怎么能让他们同时执行啊。。
追答
两个线程本来就并发执行的,你在线程1里就循环接受数据,接受到数据后,写入List里就好了,
线程2循环从List里取数据处理即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppoo2233445566
2013-10-16 · TA获得超过229个赞
知道小有建树答主
回答量:275
采纳率:100%
帮助的人:101万
展开全部
可以使用System.Threading.AutoResetEvent ,不过为下策,使用会造成代皮镇码阅读性下毕坦降,维护性下降。当燃数粗然用好也很不错
追问
恩额,, 我试试看。。  没有用过你说的这个方法。。
追答
用优先级的方法肯定不行。系统的线程这部分完全不受任何人控制,什么优先级都有可能先跑,只是可能性大小的问题,所有用线程只能用阻塞这种方法来做到安全的控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清水栞
2013-10-16 · TA获得超过1547个赞
知道小有建树答主
回答量:1538
采纳率:50%
帮助的人:981万
展开全部
并行执行就是两个薯尺Thread啦,你这里有优先极关系吗?

看说明 上数档高好像蠢旦是 处理数据最优先?
更多追问追答
追问
优先级就是行情数据接收到 在做处理  但是行情接收的动作要一直在走着,,因为是实时的数据。。   就是说 接收到行情数据后 就做处理 ,但是在做处理的同时 也要在做着接收的动作。。

感觉两个线程不好控制吧?
所以一直在查 并行的概念。。
追答
处理的数据,是接收来的?

如果所有接收的数据都处理完了,处理的行为还是否继续?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式