0

我有一个这样的构造:

private readonly List<Thread> thr = new List<Thread>();

在一个类中,我有一个带有一个参数的方法,我想调用它。

    public void testthr(object xxx)
    {
     ......
    }

在按钮上单击我开始一个线程

        for (Int32 i = 0; i < textBox8.Lines.Length; i++)
        {

            var thr1 = new Thread(testthr);
            thr1.Start(textBox8.Lines[i].Trim());

            thr.Add(threadz);

        }

如何使线程具有多个参数?喜欢:

    public void testthr(object xxx, string yyy)
    {
     ......
    }

这个类在线程开始?

4

1 回答 1

1

如果要将多个值传递给线程 proc,则需要创建一个对象来包含它们。有几种方法可以做到这一点。最简单的可能是使用Tuple

for (Int32 i = 0; i < textBox8.Lines.Length; i++)
{

    var thr1 = new Thread(testthr);
    var data = new Tuple<string, string>(textBox8.Lines[i].Trim(), "hello");
    thr1.Start(data);

    thr.Add(thr1);

}

public void testthr(object state)
{
    var data = (Tuple<string,string>)state;
    var item1 = data.Item1;
    var item2 = data.Item2;
    ...
}
于 2013-09-15T17:45:30.517 回答