.Net2.0 的新线程 ParameterizedThreadStart

如果你想为一个线程传入变量你怎么办?

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);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值