向線程傳送資料有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); } }}