使用参数化线程启动C#

时间:2017-04-06 09:18:00

标签: c# multithreading

ParameterizedThreadStart中调用的方法是否可以使用多个参数?

class Fungsi
{
    public void satu(int a, int b) 
    {
        for (int x = 0; x <= 20; x++)
        {
            tampil(a, b, '=', x);
            b++;
            Thread.Sleep(1000);
        }
     }
}

class Program
{
    static void Main(string[] args)
    {
        Fungsi a = new Fungsi();
        Console.CursorVisible = false;

        Thread ab = new Thread(new ParameterizedThreadStart(a.satu));
        ab.Start(10,1);

        Console.ReadLine();
    }
}

为什么Thread ab = new Thread(new ParameterizedThreadStart(a.satu));

如何使用ParameterizedThreadStart?

我想用一种方法创建4个多线程

1 个答案:

答案 0 :(得分:0)

给出方法

void Worker(string a, int b){}

对于.NET 2.0,您需要使用委托:

ThreadStart start = delegate { Worker("bla", 10); };
Thread t = new Thread(start);
t.Start();

对于以后的.NET版本,您可以使用匿名函数:

Thread t = new Thread(() => Worker("bla", 10));
t.Start();

或者从.NET 4开始,您可以使用TPL任务:

Task t = new TaskFactory().StartNew(() => Worker("bla", 10));
相关问题