在不同线程之间传递数据

        一般情况下,在线程间是不能交换数据的,不过在相同应用程序域中的线程则可以共享应用程序域的数据。我们可以通过AppDomain的GetData和SetData方法来实现这一功能。具体见源代码。
       
 1using System;
 2using System.Threading;
 3
 4namespace ConsoleDemo
 5{
 6    /// <summary>
 7    /// Class1 的摘要说明。
 8    /// </summary>

 9    class Class1
10    {
11        /// <summary>
12        /// 应用程序的主入口点。
13        /// </summary>

14        [STAThread]
15        static void Main(string[] args)
16        {
17            //
18            // TODO: 在此处添加代码以启动应用程序
19            //
20            int inputParam = 10;
21            
22            Thread demoTd = new Thread(new ThreadStart(Run));
23            demoTd.IsBackground = true;
24
25            Thread.GetDomain().SetData("demo", inputParam);   //设置应用程序域的数据槽的数据
26            demoTd.Start();
27            Console.Read();
28        }

29
30        static void Run()
31        {
32            int tmp = 0;
33            Console.WriteLine(tmp);
34            try
35            {
36                tmp = Convert.ToInt32(Thread.GetDomain().GetData("demo"));  //读取应用程序域中的数据槽数据
37            }

38            catch(Exception exp)
39            {
40                Console.WriteLine(exp);
41                Console.Read();
42            }

43            Console.WriteLine(tmp);
44            Console.Read();
45        }

46    }

47}

48

posted on 2006-02-13 10:28  刘寓  阅读(1802)  评论(1编辑  收藏  举报

导航