首页 新闻 会员 周边 捐助

C#多个线程如何同时执行同一个方法?

0
悬赏园豆:5 [已解决问题] 解决于 2016-09-18 09:59

例如:

List<string>nameList=new ....

这里有个名字集合,里面存着10000个名字

我现在要把里面名字循环 发送post请求到一个api

单线程的话太慢了,如何开启多个线程 执行我这个操作?

如果new 多个Thread的话,感觉没有同步


顺便在问下大家,现在C# 多线程的话 都用Task了?

KotobukiTsumugi的主页 KotobukiTsumugi | 初学一级 | 园豆:23
提问于:2016-09-11 08:57
< >
分享
最佳答案
0

把集合拆成多组,比如1-50个 、50-100个、100-150个等,然后在窗口设置2个输入框,设置输入开始的位置,然后重复打开多个下载窗体来下载就行了

收获园豆:5
小粽子饱饱 | 菜鸟二级 |园豆:251 | 2016-09-17 18:01

你的意思是这里有个小算法是不是? 比如1000个名字 我分成20组 每组50个名字 就是20个线程

KotobukiTsumugi | 园豆:23 (初学一级) | 2016-09-17 19:54

@扶着往事走: 你将2个文本框里的数值传给你的循环开始和结束:如for (int i = indexStart; i < indexEnd; i++)   然后把indexStart这个参数给你的集合  如:(modelList[indexStart])这样他就会从这个数值开始,接下来就是打开多个窗口,就好像我之前说的那样,不过能开几个线程得看你的电脑是几核的

小粽子饱饱 | 园豆:251 (菜鸟二级) | 2016-09-18 09:23
其他回答(2)
1

都不用task了.  nameList.AsParallel().ForAll(m=> {上传m})

吴瑞祥 | 园豆:29449 (高人七级) | 2016-09-11 09:33

请问这是多线程吗?

还有你这个和task有什么区别吗

支持(0) 反对(0) KotobukiTsumugi | 园豆:23 (初学一级) | 2016-09-11 10:09

比如 你这个好像应该是同时执行的?

支持(0) 反对(0) KotobukiTsumugi | 园豆:23 (初学一级) | 2016-09-11 10:11

第一次看到这种方法,之前不知道,看眼界了。谢谢阿
能给我讲解一下就更好了

支持(0) 反对(0) KotobukiTsumugi | 园豆:23 (初学一级) | 2016-09-11 10:18

原来是plinq啊
长知识了

支持(0) 反对(0) KotobukiTsumugi | 园豆:23 (初学一级) | 2016-09-11 11:24

@扶着往事走: 并行计算。。

支持(0) 反对(0) 小小高 | 园豆:1307 (小虾三级) | 2016-09-12 09:33

并行计算的数量多的是会出异常,也得分组

支持(0) 反对(0) lb1208 | 园豆:371 (菜鸟二级) | 2017-05-26 13:59
0

你把你的集合分成多个分集合,然后每个集合开一个线程不就好了吗,这个貌似和是不是执行同一个方法没冲突啊

筱申 | 园豆:223 (菜鸟二级) | 2016-09-14 17:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册