向线程传送数据有2种方法:
- 使用带参数的Threadstart方法
- 创建一个定制类,把线程的方法定义为实例方法,这样就可以初始化实例的数据,之后启动线程。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; // 向线程传递数据 // Herbert // 仅供个人学习使用 namespace ThreadDemo { class Program { public struct Data { public string Message; } static void ThreadMainWithParameters(object o) { Data d = (Data)o; Console.WriteLine("Running in a thread, received {0}", d.Message); } static void Main(string[] args) { Data d = new Data(); d.Message = "Info"; Thread t2 = new Thread(ThreadMainWithParameters); t2.Start(d); MyThread obj = new MyThread("obj"); Thread t3 = new Thread(obj.ThreadMain); t3.Start(); Console.ReadKey(); } } } MyThread类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ThreadDemo { class MyThread { private string data; public MyThread(string data) { this.data = data; } public void ThreadMain() { Console.WriteLine("Running in a thread, data: {0}", data); } } }