C#的多线程Thread函数调用
上一篇 /
下一篇 2014-01-20 09:54:51
/ 个人分类:C#
这里讲如何用Thread类进行线程操作。在通过Thread实例化时,有一个线程委托的参数。在定义线程时有带参数和不带参数之分。
1. 不带参数:用ThreadStart
public void Main()
{
Thread t = new Thread(new ThreadStart(NonParamThread));
t.Start();
Thread.Sleep(5000);
}
public void NonParamThread()
{
Console.WriteLine("This is the sub thread.");
}
上述的NonParamThread没有参数,也没有返回值。
2. 带一个参数:用ParameterizedThreadStart,参数类型为object
public void Main()
{
Thread t = new Thread(new ParameterizedThreadStart(OneParam));
t.Start(12);
Thread.Sleep(5000);
}
public void OneParam()
{
Console.WriteLine("One Parameter Thread: " + obj.ToString());
}
3. 带多个参数: 一般定义一个类,将一个实例作为参数,仍用ParameterizedThreadStart
public class CParam
{
private int a;
private int b;
public void SetValue(int i, int j)
{
a = i;
b = j;
}
public int GetA()
{
return a;
}
public int GetB()
{
return b;
}
}
public void Main()
{
CParam p = new CParam();
p.SetValue(11, 22);
Thread t = new Thread(new ParameterizedThreadStart(MultiParam));
t. Start(p);
Thread.Sleep(5000);
}
public void MultiParam(object obj)
{
CParam p = (CParam)obj;
Console.WriteLine("MultiThread: " + p.GetA().ToString() + " and " + p.GetB().ToString());
}
收藏
举报
TAG: