-6

グラフ トラバーサル関数を実行する c# でいくつかのタスクを作成する必要があります。今やりたいことは、そのトラバーサル関数のパラメーターとして異なるソースを取り、タスク自体で開始される 2 つの独立したスレッドを用意することです。4つのタスクを並行して動作させたいのですが、同じ機能を実行する2つのスレッドを使用させたいので、タスクを使用することを考えていますか? それは可能ですか?

だから私が欲しいのは、task1含むthread1thread2task2含むthread3thread4task3含むthread5thread6です。

これらすべてのスレッドはすべて同じ機能を実行します。実装することは可能ですか?他に方法はありますか?

4

1 に答える 1

0
  1. パラメータをスレッドに渡すために使用できるクラスを宣言します。
class ThreadParamsClass
{
    internal int int1, int2;

    internal ThreadParamsClass(int int1, int int2)
    {
        this.int1 = int1;
        this.int2 = int2;
    }
}
  1. クラスのインスタンスをいくつか作成し、スレッドを開始して、パラメーター オブジェクトをスレッドに渡します。
ThreadParamsClass[] ThreadParams = new ThreadParamsClass[6];
ThreadParams[0] = new ThreadParamsClass(1, 2);
ThreadParams[1] = new ThreadParamsClass(3, 4);
ThreadParams[2] = new ThreadParamsClass(5, 6);
ThreadParams[3] = new ThreadParamsClass(7, 8);
ThreadParams[4] = new ThreadParamsClass(9, 10);
ThreadParams[5] = new ThreadParamsClass(11, 12);
for (int i = 0; i < 6; i++)
{
    Thread Thread1 = new Thread(new ParameterizedThreadStart(Function1));
    Thread1.Start(ThreadParams[i]);
}

void Function1(object Params)
{
    ThreadParamsClass ThreadParams = (ThreadParamsClass)Params;
    int result = ThreadParams.int1 + ThreadParams.int2;
}
于 2013-03-27T14:00:45.647 に答える