C#发起一个线程以后,经常需要给线程传递一些参数。总结了几种启动线程传递参数的方法。
传递参数
1、通过构造函数传递参数
MyClass obj = new MyClass(a,b);
Thread t = new Thread(new ThreadStart(obj.ThreadMethod));
t.Start();
2、通过对象的属性传递参数
MyClass obj = new MyClass();
obj.a = a;
obj.b = b;
Thread t = new Thread(new ThreadStart(obj.ThreadMethod));
3、使用带参数的ParameterizedThreadStart来代替ThreadStart
MyClass obj = new MyClass();
Parameter p = new Parameter();
Thread t = new Thread(new ParameterizedThreadStart(obj.ThreadMethod,p));
4、使用一个全局的对象,或者单例模式,来设置某个共享资源
获得返回值
1、传递参数传递对象,利用对象的引用性来传递返回值
2、通过委托返回值
GetClass.Invoke(new Action<string>(GetClass.Method,"returnValue"));
//或者自定义委托的方式返回