C#多线程变成传递参数解决方案

在写多线程程序的时候,往往委托调用的方法不能传递参数,但是我就遇到了一个问题,线程委托的方法必须要传递参数,因为我有多个线程,而多个线程所注册的方法体基本上都是一样的,只有几个变量的值不一样,我也不想写什么 方法1(){……} ; 方法2(){……} 方法3(){……}等等,因为我的线程有可能是100个,或者是更多,所以我放弃了这种方法,想用一个方法,然后向里面扔参数,去用循环搞定它,这样才能表现出程序的精简型,和优秀程序员作风,于是我上网查阅了些资料,并且和同事交流了一下,得出一个解决方案:

首先~线程调用的类里定义个变量,然后再线程委托的方法体内也定义一个变量,当然这个变量就是你千方百计想要穿进去的,然后方法体内的第一句话就是 "方法体变量 = 类的变量" ; 用一个循环去启动这些线程,而且这些线程同样都去注册这个方法体

关键代码部分:

for (int i = 0; i < _MAXSERVER; i++)
{
类变量= (ServerBean)serverState[i];//类变量赋值
Thread th = new Thread(new ThreadStart(ScanPort));//ScanPort是我的一个方法体
th.Start();
Thread.Sleep(10);//这里睡上10秒是为了让启动的这个线程有足够的时间去执行它的第一句
赋值语句
}

好了,大体思路就是这样~~有不明白的或遇到同样问题的可以讨论讨论

时间: 2024-11-02 02:49:00

C#多线程变成传递参数解决方案的相关文章

java向多线程中传递参数的三种方法详细介绍_java

在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据.本文就以上原因介绍了几种用于向线程传递数据的方法,在下一篇文章中将介绍从线程中返回数据的方法. 欲先取之,必先予之.一般在使用线程时都需要有一些初始化数据,然后线程利用这些数据进行加工处理,并

select-两个html页面如何传递参数。

问题描述 两个html页面如何传递参数. 比如有a.html 和b.html 我如何把a.html 中下拉列表中的值1,值2,保存到b.html中显示. <select id="sel"> <option value="1">值1</option> option value="2">值2</option> </select> 解决方案 需要借助服务器才能传. 把你的表单嵌套在for

cordova-jingle页面间如何传递参数

问题描述 jingle页面间如何传递参数 跳转 官方有写这样带参数,但是他没写第二个页面怎么获取啊 解决方案 HTML页面间传递参数在jsp页面间传递参数在jsp页面间传递参数 解决方案二: //构造一个含有目标参数的正则表达式对象 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //匹配目标参数 var params = window.location.href.split('

mvc4-ztree如何实现传递参数到后台

问题描述 ztree如何实现传递参数到后台 比如我点击一个其中的某个节点后将该节点的id传递到某个action要怎么实现? 解决方案 后台向前台js传递参数 解决方案二: 看官网文档 看官网文档 async 异步加载这部分内容 后台写个根据id查询子节点的方法就行了

关于MFC中ccmdtarget这个类在多线程中传递消息参数的用法

问题描述 关于MFC中ccmdtarget这个类在多线程中传递消息参数的用法 关于MFC中ccmdtarget这个类在多线程中传递消息参数的用法?看了一些资料,但是没有提到如何用它来调用多线程,具体怎么做呢? 解决方案 http://blog.csdn.net/hyhnoproblem/article/details/6117631

《C#多线程编程实战(原书第2版)》——1.9 向线程传递参数

1.9 向线程传递参数 本节将描述如何提供一段代码来使用要求的数据运行另一个线程.我们将介绍不同的方式来满足此任务,并且回顾常见的错误. 1.9.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter1\Recipe8目录中. 1.9.2 实现方式 请执行以下步骤来了解如何给一个线程传递参数: 1.启动Visual Studio 2015.新建一个C#控制台应用程序项目. 2.在Program.c

php- js在不跳转的情况下向一个页面传递参数

问题描述 js在不跳转的情况下向一个页面传递参数 需求是把textarea传递到savexml.php进行数据保存,但同时我希望页面还留着当前页面.代码如下: <form name=""form1"" id=""form1"" method=""post"" action=""newtest.php""> <input type=

参数传递-求助一个vb.net无法向NVelocity模板引擎传递参数的问题

问题描述 求助一个vb.net无法向NVelocity模板引擎传递参数的问题 我没找到vb.net的资料就用C#的翻译成了下面vb.net代码,我是想把一个类的实例作为参数传给模板,但模板并未收到son的数据,请各位前辈帮忙看看,字符串类型和数值类型都以传递,唯独类的实例不可以传递,代码如下: person类代码: Public Class person Public name As String Public age As Integer End Class html模板代码: <html>

python-请问如何使用flask传递参数

问题描述 请问如何使用flask传递参数 我做个网页的用户验证,用的是mysql数据库.我会在.py文件里操作数据库,但是不知道用flask怎样从html页面向.py文件传值,简单来说就是用户在html文件输入信息后,如何将其传给.py文件?网上很多例子是用的sqlite,请不要发这样的例子了,不知道怎样将其转为mysql.谢谢,请老师指点一下. 解决方案 http://segmentfault.com/q/1010000000365167 参考这个,获取到的参数,是跟数据库没关系的 解决方案二