不同線程之間傳遞數據
一般情況下,在線程間是不能交換數據的,不過在相同應用程序域中的線程則可以共享應用程序域的數據。我們可以通過AppDomain的GetData和SetData方法來實現這一功能。具體見源代碼。using System; using System.Threading; namespace ConsoleDemo { /// <summary> /// Class 的摘要說明。 /// </summary> class Class { /// <summary> /// 應用程序的主入口點。 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此處添加代碼以啟動應用程序 // int inputParam = 10; Thread demoTd = new Thread(new ThreadStart(Run)); demoTd.IsBackground = true; Thread.GetDomain().SetData("demo", inputParam); //設置應用程序域的數據槽的數據 demoTd.Start(); Console.Read(); } static void Run() { int tmp = 0; Console.WriteLine(tmp); try { tmp = Convert.ToInt32(Thread.GetDomain().GetData("demo")); //讀取應用程序域中的數據槽數據 } catch (Exception exp) { Console.WriteLine(exp); Console.Read(); } Console.WriteLine(tmp); Console.Read(); } } }
最後更新:2017-04-03 18:51:56