星期天 十二月 20, 2009 11:13
cSharp中给线程传递参数
在c#中如何给线程传递参数呢?其实很简单。一般来说可以采用2种方式:
- 使用带parameterizeThreadStart委托参数的Thread构造函数
- 定制一个类,通过该类的构造函数初始化想要传递的参数,再将该参数应用该类的方法。把线程的方法定义为该类实例的方法即可。
下面是一个Demo :
public static void Main() { //1.使用一个带参数的委托ParameterizedThreadStart来初始化Thread myData data = new myData(); data.Message = "new Info"; new Thread(paralizeThread).Start(data); //2.通过初始化一个类的字段,将该类的方法封装到线程中去 new Thread(new myThreadClass("new info2").ThreadMethod).Start(); } //类或结构都行 struct myData { string message; public string Message { get { return message; } set { message = value; } } } static void paralizeThread(object o) { myData data = (myData)o; Console.WriteLine("Thread {1} received a Parameter : {0}",data.Message,Thread.CurrentThread.ManagedThreadId); } class myThreadClass { string _message; public myThreadClass(string message) { this._message = message; } public void ThreadMethod() { Console.WriteLine("Thread {1} received a Parameter : {0}", this._message, Thread.CurrentThread.ManagedThreadId); } }
- Category: csharp-note
- No Comments