首页 新闻 会员 周边

winfrom如何实现多线程

0
悬赏园豆:5 [已解决问题] 解决于 2016-08-26 21:43

我用winfrom来完成一个任务,牵扯多个过程。

执行比较缓慢,我想使用多线程。不知道怎么实现,请高手指导下。

 

 这是要实现功能图。

荆棘人的主页 荆棘人 | 菜鸟二级 | 园豆:410
提问于:2015-02-12 11:23
< >
分享
最佳答案
0

看书啊,不买实体书,你起码可以到博客园里面搜索一下,或者到外面GOOGLE一下。

你这样问想干啥呢?最多告诉你有System.Threading这个命名空间。

收获园豆:5
爱编程的大叔 | 高人七级 |园豆:30839 | 2015-02-12 11:25

我会调用单个Threading,但是不会解决死锁问题啊。当递归方法内部需要读写文件时,使用公共资源时,怎么办啊?

荆棘人 | 园豆:410 (菜鸟二级) | 2015-02-12 11:29

@荆棘人: 两种方法

1、先统一写在内存里面,最后一起写入文件。

2、或者写文件时,排队等候。

 

如果瓶颈出在写文件上面,那就只能通过买更快的硬盘来解决了。

比如说SSD硬盘之类的。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-02-12 11:50
其他回答(4)
0

http://www.cnblogs.com/jackrebel/p/4279612.html  这个是多线程去采集的, 控制了不能重复。  或许对你有用。 

当多线程操作同一文件时,  要注意加锁, 让其它的排队, 搞完了再解锁就行。 

问天何必 | 园豆:3311 (老鸟四级) | 2015-02-12 12:38
0

首先你需要通过profiler手段分析你的应用性能瓶颈在哪里,然后分析是计算密集型还是IO密集型,接着分析是用多线程还是异步还是直接单线程。同意楼上的回答,数据同步的方式很多,加锁是最经济实惠的做法。

JeffWong | 园豆:2328 (老鸟四级) | 2015-02-12 13:36

不能同意更多。很多人出现性能问题,完全不懂得分析,老是瞎猜。

性能问题要是找不到关键地方,花100天优化还不如找到关键地方,花1个小时优化的好。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-02-12 14:53
0

System.Threading下面的类,看完最多也就有个1天的时间,

主要就看看那几个锁就行,其他的可以以后慢慢了解.

只会造轮子 | 园豆:2274 (老鸟四级) | 2015-02-12 15:12
0

为什么一定要同时操作一个文件呢?每个线程有自己的文件不行吗?

XiaoFaye | 园豆:3087 (老鸟四级) | 2015-02-12 17:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册