不同線程之間傳遞數據
一般情況下,在線程間是不能交換數據的,不過在相同應用程序域中的線程則可以共享應用程序域的數據。我們可以通過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