您的位置:首页 > 移动开发 > Objective-C

.Net2.0 的新线程 ParameterizedThreadStart

2008-06-23 15:50 288 查看
如果你想为一个线程传入变量你怎么办?

ThreadStart可不支持带参数的方法.所以你无法使用Thread来启动一个带参数的方法..

 ThreadStart myThreadDelegate = new ThreadStart(ThreadMethod);//public delegate void ThreadStart();  u can't pass a Parameter

            
Thread myThread = new Thread(myThreadDelegate);

           
 myThread.Start();  //myThread.Start(o); Wrong! 


不过在.Net1.0下,你可以通过Delegate的异步调用来实现.现在在.Net2.0下提供了ParameterizedThreadStart 这么一个Delegate.它和ThreadStart 的不同就在于可以拥有一个object类型的参数.也就是说你可以通过它来使用Thread类以启动一个线程并传入参数, 和Java很象了,不错的新功能.


using System;


using System.Threading;


namespace ParameterizedThreadStartTest
 

{


    class Program


    {


        static void Main(string[] args)


        {




            ParameterizedThreadStart myParameterizedThreadDelegate = new ParameterizedThreadStart(ThreadMethod);

           Thread myThread = new Thread(myParameterizedThreadDelegate);


            object o = "hello";


            myThread.Start(o);




        }




        private static void ThreadMethod(object o)


        {


            string str = o as string;


            Console.WriteLine(str);


        }


    }


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net thread object string java