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:

 

评分:0

我来说两句

日历

« 2024-03-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 12957
  • 日志数: 16
  • 建立时间: 2010-11-15
  • 更新时间: 2014-01-27

RSS订阅

Open Toolbar