.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);
}
}
}
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);
}
}
}
相关文章推荐
- .Net2.0 的新线程 ParameterizedThreadStart &BackgroundWorker
- .Net2.0 的新线程 ParameterizedThreadStart
- .Net2.0 的线程 ParameterizedThreadStart &BackgroundWorker
- .Net2.0 的新线程 ParameterizedThreadStart &BackgroundW
- Net2.0 的新线程 ParameterizedThreadStart &BackgroundW
- [C#学习笔记之多线程1]使用ParameterizedThreadStart委托向线程函数传送参数
- C# multithread,threadpool,ParameterizedThreadStart,传递参数给线程以及回调
- 带参数线程的操作(ParameterizedThreadStart,ThreadStart)
- 使用ParameterizedThreadStart委托向线程函数传送参数
- 【zz】.Net2.0 的新线程 ParameterizedThreadStart &BackgroundWorker
- Net2.0 的新线程 ParameterizedThreadStart &BackgroundWorker
- [转贴]ParameterizedThreadStart,ThreadStart的使用,线程Thread传参数
- 线程与进程,Thread的run()与start()的区别
- 从Thread.start()方法看Thread源码,多次start一个线程会怎么样
- Thread线程中start()和run()方法的区别
- Java-线程Thread方法start()和run()
- Java之Thread线程相关yield()、sleep()、wait()、join()、run和start区别详解
- Java.线程.Thread类.Runnable接口.start().setDaemon().join()
- 在C#中ParameterizedThreadStart和ThreadStart区别
- ParameterizedThreadStart,ThreadStart的使用,线程Thread传参数