0

私はこのような構造を持っています:

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

クラスには、スレッド化されたパラメーターを 1 つ持つメソッドがあります。

    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

複数の値をスレッド プロシージャに渡したい場合は、それらを含むオブジェクトを作成する必要があります。それにはいくつかの方法があります。最も簡単なのはおそらく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 に答える