一、 最常见的就是使用参数为 ThreadStart类型的线程构造函数【线程要执行的函数没有参数】
Thread t = new Thread(new ThreadStart(FunctionName));
可以写成 Thread t = new Thread(FunctionName); 这就是最基本的创建线程方法。但是ThreadStart是无参数的委托类型,这种方法也就不能直接给线程函数传递参数。但是线程函数可以直接访问他所在的类中的其他成员变量,参数可以设置在其他成员变量中,让线程函数去读取。
<span style="font-size:14px;"> using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace StartThread
{
class Program
{
int interval = 200;
static void Main(string[] args)
{
Program p = new Program();
Thread nonParameterThread = new Thread(new ThreadStart(p.NonParameterRun));
nonParameterThread.Start();
}
/// <summary>
/// 不带参数的启动方法
/// </summary>
public void NonParameterRun()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("系统当前时间毫秒值:"+DateTime.Now.Millisecond.ToString());
Thread.Sleep(interval);//让线程暂停
}
}
}</span>
二、 使用参数为 ParameterizedThreadStart类型的线程构造函数【线程要执行的函数拥有参数】
Thread t = new Thread(new ParameterizedThreadStart(FunctionName));
ParameterizedThreadStart也是一个委托类型,其委托的函数必须带一个object类型的参数。虽然只带一个object类型参数,但是可以把N个参数都包装进一个类对象,通过这个object参数直接把该对象传给线程,也就相当于传了N个参数,不过多了包装这步。
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace StartThread
{
class Program
{
int interval = 200;
static void Main(string[] args)
{
Program p = new Program();
Thread parameterThread = new Thread(new ParameterizedThreadStart(p.ParameterRun));
parameterThread.Name = "Thread A:";
parameterThread.Start(30);
//启动第二个线程
parameterThread = new Thread(new ParameterizedThreadStart(p.ParameterRun));
parameterThread.Name = "Thread B:";
parameterThread.Start(60);
}
/// <summary>
/// 带参数的启动方法
/// </summary>
/// <param name="ms">让线程在运行过程中的休眠间隔</param>
public void ParameterRun(object ms)
{
int j = 10;
int.TryParse(ms.ToString(), out j);//这里采用了TryParse方法,避免不能转换时出现异常
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Thread.CurrentThread.Name+"系统当前时间毫秒值:" + DateTime.Now.Millisecond.ToString());
Thread.Sleep(j);//让线程暂停
}
}
}
}
对上面的代码做一点说明, 就是线程启动之后,线程的引用不必再存在 ,例如在上面的代码中我用的是同一个引用实例化了两个线程,并且这两个线程运行很正常。
转自:http://blog.csdn.net/zhoufoxcn/article/details/4402999