0

私はいくつかのアクション コレクションを持っています。コレクション内の各アクションは、実行する前にアクションを待機する必要があります..

   List<Action> actionCollection = new List<Action>()
   {
          func1,
          func2,
          func3
   };

今、すべてのアクションをタスクで実行したいのですが、Action1 ( func 1 ) は Action2 ( func 2 ) の前に実行する必要があり、 Action1 が終了する前に Action2 を開始することはできません。

どうやってするの ?

ありがとう

4

1 に答える 1

2
public Task ExecuteConsecutivelyAsync(IEnumerable<Action> actions) {
    return Task.Factory.StartNew(delegate {
        foreach (var action in actions) {
            action();
        }
    });
}

UI スレッドでタスクを実行し続けるために、StartNewTaskScheduler を受け入れるオーバーロードを呼び出して渡す必要がある場合があります。TaskScheduler.FromCurrentSynchronizationContext()上記のように、スレッドプールで実行される傾向があります。

于 2012-12-28T01:27:12.767 に答える