多线程执行带参数的函数

zjgdtl 2014-10-28 05:14:13
我有一个函数是
DO.DeviceMngmt_GetDeviceInformation(ss, "admin", "admin", out dinfo, out ERR);

这是人家的一个接口,我不知道里面是什么也不能改
现在这个接口跑一次要1s,要跑17次就要17s,我想开17个线程来跑,但是带参数的函数怎么开多线程,有没有建议
...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwangt0 2014-10-28
  • 打赏
  • 举报
回复
public void ProgressInfo(string str1, string str2) { System.Threading.Thread th = new System.Threading.Thread(() => DownLoadFace(str1, str2)); th.IsBackground = true; th.Start(); } //带参数的方法 private void DownLoadFace(string str1, string str2) { }
忘丿殇 2014-10-28
  • 打赏
  • 举报
回复
                            threadClient[index] = new Thread(new ParameterizedThreadStart(接口函数));
                            threadClient[index].IsBackground = true;
                            threadClient[index].Start(参数);
你是要这样的?
於黾 2014-10-28
  • 打赏
  • 举报
回复
根据你给出的函数,有传入的,还有out的,最后一种方式其实不太合适了 可以封装成类 或者定义一些数组来放传入的变量和传出的变量,然后object里传入数组的索引,线程里使用数组
於黾 2014-10-28
  • 打赏
  • 举报
回复
线程传参问题,大体上有3种方式 1.把线程封装到类里去,实例化类的时候,参数给类的属性,然后类里开线程 2.Thread.Start(object); 当然线程函数也必须定义成void function(object o){} 3.委托传参 void fun2(int i1, string s1){} th2 = new Thread(delegate() { fun2(1, "1"); }); th2.Start();

110,571

社区成员

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

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

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