4

アクションオブジェクトを作成するために、C#でタスクを開始する必要があります。

private Action<int, int, int> action = (int p1, int p2, int p3) =>
{
    // do some stuff with p1, p2 and p3.
};

しかし、それからタスクを作成しようとすると、またはをnew Taskとることしかできず、複数のテンプレート化された引数で自分を受け入れることを拒否することに気付きます。ActionAction<object>action

このタスクオブジェクトを作成して引数を渡す方法について何かアイデアはありますか?

4

2 に答える 2

5

ラムダを使用して、適切なデリゲート型に変換するだけです。

Action<int, int, int> action = (int p1, int p2, int p3) =>
{
    // do some stuff with p1, p2 and p3.
};

//a closure can capture over any values you might want to pass in
Task.Run(() => action(1, 2, 3));

あなたがそれについて考えるならば、あなたはパラメータも提供しなければならないのであなたはに渡すAction<int, int, int>ことができません。何を渡したいのかわからない。Task.RunTask.Run

于 2012-11-15T11:06:49.833 に答える
-2

パラメータのDTOとしてクラスを作成するのはどうですか?


public class ParamDto
{
   public string Param1;
   .
   .
   .
}
于 2012-11-15T11:06:00.413 に答える