new ThreadStart中的方法如果有参数,该怎么写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了new ThreadStart中的方法如果有参数,该怎么写相关的知识,希望对你有一定的参考价值。
楼主,你要是想带参数可以用这个ParameterizedThreadStart pts = new ParameterizedThreadStart(ReceiveDate);
Thread threadReceive = new Thread(pts);
User user = new User(newClient);
threadReceive.Start(user);
看第一行,我这段代码的ReceiveDate方法就是有一个参数的,使用ParameterizedThreadStart这个创建线程可以带一个参数 参考技术A Thread calcThread = new Thread(new ParameterizedThreadStart(RunAlg));
calcThread.Start("参数");
做个简单的解释,因为我看之前的答案,都不知道传递的参数是哪个
函数参数类型必须定义为object :
如:RunAlg(object nParam);
参数用的时候需要类型转换,如转int: (int)nParam; 转string :nParam.toString();
多个参数可以做成类或者数组传入。本回答被提问者采纳
c# 中new ThreadStart()怎么用?这里面怎么传参数?
我查了下好像new ThreadStart()的括号内只能穿方法名啊,要是方法有参数怎么办呢?
比如:
private void a()
int x = 0;
int y = 201;
int w = 348;
int h = 175;
Thread t = new Thread(new ThreadStart(b(x,y,w,h)));
t.Start();
public void b(int x,int y,int w,int h)
while(true)
//x,y,w,h----》do something....
Thread.Sleep(100);
new Thread(b).Start(new int[]x,y,w,h);
void b(object args)
int[] arr = (int[])args;
int x=arr[0];
int y= arr[1];
参考技术A Thread calcThread = new Thread(new ParameterizedThreadStart(RunAlg));
calcThread.Start("参数");
函数参数类型必须定义为object :
如:RunAlg(object nParam);
多个参数可以做成类或者数组传入。
以上是关于new ThreadStart中的方法如果有参数,该怎么写的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数传递给 Thread 中的 ThreadStart 方法?
new Thread(new ThreadStart(this.StartServer))
C# 多线程,ThreadStart()里面的方法带了参数就提示错误?