在C#中使用线程,线程的方法函数中需要带一个数组的参数传递进去

例如:
threadStart mm=new threadStart (doit);
thread nn=new thread(mm);

nn.start(数组)

public void doit(float [] mydata )
{
^^^^^^^^^^^^^
}
大概意思就是这样,我想使用线程去处理doit这个事情,但是线程无法传递一个数组变量,求大神赐教!!!

threadStart mm=new threadStart (doit);
thread nn=new thread(mm);
nn.start(数组);

public void doit(object sender)
{
float[] _mydata = sender as float[];
//do something

}
另外建议:把新建线程设为后台线程,即添加: nn.IsBackground = true;这一句话,这样当你应用程序退出之后,该线程也会立即销毁,如果为false,则就算主线程退出了,你新建的线程还会继续执行下去,直到新建线程执行结束
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-15
ParameterizedThreadStart mm = new ParameterizedThreadStart(doit);
Thread nn = new Thread(mm);
nn.Start(数组);
public void doit(object mydata)
{
//强制转换mydata为你需要的数组
 }

第2个回答  2013-07-15
定义成 object
第3个回答  2013-07-15
能用啊,我这儿是OK的

在C#中使用线程,线程的方法函数中需要带一个数组的参数传递进去
nn.start(数组);public void doit(object sender){ float[] _mydata = sender as float[];\/\/do something } 另外建议:把新建线程设为后台线程,即添加: nn.IsBackground = true;这一句话,这样当你应用程序退出之后,该线程也会立即销毁,如果为false,则就算主线程退出了,你新建的线程还会继...

在C#窗体里创建了一个线程,线程里我定义了一个string变量,如何把该变量...
你可以在窗体内写一个方法,用来设置这个TextBox的值,然后在创建线程的时候,将这个方法传递给线程,这样在线程中就可以直接调用了 另外这个方法最好用Invoke()方法去实现

C#怎么用线程执行带参数的函数??
Thread th = new Thread(new ParameterizedThreadStart(Hello));th.Start("张三");private static void Hello(object obj){ Console.WriteLine("你好 {0}!", obj.ToString());}

C#中的多线程问题,为什么带参数的方法不行,不带参数的可以?
threadstart的参数是一个函数指针,这个指针是要传递个thread的一个内部函数执行的(那个函数才是真正意义的线程),你自己的函数只是传递给人家,人家调用进去,该函数指针的类型就是没有参数,没有返回值的,你的线程函数必须类型相同,指针类型不同肯定不行的。。。

c#中,怎么将一个类里面的所有方法一次性添加到线程池的队列中
你可以做个数组把方法放进去,然后用循环调用即可 void m1(object obj) { } void m2(object obj) { } void Main() { var delegateArray = new WaitCallback[] { m1, m2 };\/\/多个方法只要放到这数组里即可 foreach (var item in delegateArray) { Thread...

请问C#中使用线程池,这样的使用方式(下图)正确吗?后台有三个方法需要...
将线程安放在线程池里,需使用 ThreadPool.QueueUserWorkItem() 方法,该方法的原型如下:\/\/ 将一个线程放进线程池,该线程的 Start() 方法将调用 WaitCallback 代理对象代表的函数 public static bool QueueUserWorkItem(WaitCallback);\/\/ 重载的方法如下,参数 object 将传递给 WaitCallback 所代表的...

C#如何给在运行中的线程传值
1、i 声明为成员变量而不是局部变量 2、testclass种提供一个成员函数来改变i的值 3、t声明为Form1的成员变量而不是局部变量 4、调用t上的步骤2中所说的成员函数来达到目的 如果为了防止正好++i的时候那个方法被调用,可以弄个锁防止多个线程同时操作i ...

c#中线程怎么间通信
C# 中线程之间进行通信是程序并行执行的关键。通过以下方式,线程可以实现有效交流:首先,共享变量的使用。多个线程共享一个变量,通过对其的读写操作,可以实现信息交换。然而,这种方式需要特别注意线程安全问题,防止数据竞争。其次,信号量的引入实现同步与互斥。信号量控制线程对资源的访问,确保资源在同一...

如何将pdf格式文件转换成word格式文件?
你可以安照该脚本改写成,支持多个参数,使用FOR循环,一次转换多个WORD文档,此处没有使用多个文件转换功能,是考虑到,该段脚本放在C#的线程中执行,这样一来也可以转换多个WORD文档. 四:使用C#调用ConvertDoc2PDF.js脚本 新建一个C#的WINDOWS应用程序,添加一个按钮button1 添加一个函数,函数名StartConvertPDFpublic void ...

C# 中怎么使用带参数的多线程呢
注:参数必须是object型的,并且只能一个。其他类型的可以通过显式转换成object型,然后在线程方法里再转回来。如果有多个变量则可以自己定义一个struct或者类,然后转换成object型,然后在线程方法里再转回来。另ThreadStart是没有参数的,要使用带参数的方法这样使用:Thread thr = new Thread(a);而不...

相似回答