您的位置:首页 > 其它

.Net2.0 的新线程 ParameterizedThreadStart

2008-12-24 09:56 363 查看
如果你想为一个线程传入变量你怎么办?

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);


}


}


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