多线程执行同个任务

韦德 2014-11-28 12:20:12
项目中需要批量数据调用接口返回状态,并更新至数据库,怕真实环境中调用接口时间太久,经理要求使用多线程去处理,网上查看了相关资料,发现都是多线程执行的是不同的方法,怎样怎能做的多个线程执行同个方法?

比如:现在选择100条数据,循环调用接口,怎样使用多线程同步处理
for(int i=0;i<1000;i++)
{
//调用接口
//更新数据库
}
...全文
333 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
枫0子K 2014-11-29
  • 打赏
  • 举报
回复
引用 8 楼 weidehao 的回复:
主要是想当其中一请求接口时间太长,可以有其他线程去完成剩下数据的更新,而不用等待
产生脏数据怎么办?
韦德 2014-11-29
  • 打赏
  • 举报
回复
主要是想当其中一请求接口时间太长,可以有其他线程去完成剩下数据的更新,而不用等待
道玄希言 2014-11-29
  • 打赏
  • 举报
回复
可否将接口分组, 然后一组分配一个线程来处理~ 这样,一个线程请求接口时间长,那也只是这一组的执行时间延长……
phommy 2014-11-28
  • 打赏
  • 举报
回复
思路最好再设计下。实际上你的接口能支持多少并发我不知道,但更新数据库最好串行的去做
直接按你说的实现倒是简单: ParallelEnumerable.Range(0, 1000).ForAll(i => { //调用接口 //更新数据库 });
by_封爱 版主 2014-11-28
  • 打赏
  • 举报
回复
当然是并行啊....

tasks.parallel.for(0,100,(i)=>{
//调用接口...
});
韦德 2014-11-28
  • 打赏
  • 举报
回复
需求是需要多个线程执行同个函数,都是调用同个接口
於黾 2014-11-28
  • 打赏
  • 举报
回复
可以定义线程函数: void ThFunc(object o){//这里写你的接口方法,通过传递进不同的o,进行不同的处理}; for(int i=0;i<1000;i++) { Thread th=new Thread(ThFunc); th.Start(i); }
於黾 2014-11-28
  • 打赏
  • 举报
回复
多线程执行同个方法,也要加不同参数 否则多线程执行的是完全相同的代码,这样做是没有意义的行为
於黾 2014-11-28
  • 打赏
  • 举报
回复
引用 3 楼 weidehao 的回复:
需求是需要多个线程执行同个函数,都是调用同个接口
都调用同个接口,每个线程也要传递进不同的参数去调用才对吧 否则这样做有任何意义?? 都是同样的数据,同时向数据库里update,你开10000个线程跟开1个有什么区别?
浮生若梦 2014-11-28
  • 打赏
  • 举报
回复
更新到数据库那多线程有太多含义么?

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧