0

コンソール アプリケーションで、3 つの非同期タスクを追加するタスクのリストを作成しました。

static  void Main(string[] args)
        {
List<Task> task_list= new List<Task>();


Task task_1=new Task(async () => await Task_method1());
Task task_2=new Task(async () => await Task_method2());
Task task_3=new Task(async () => await Task_method3());

task_list.Add(task_1);
task_list.Add(task_2);
task_list.Add(task_3);

 Task.WaitAll(task_list.ToArray());
            foreach (Task t in task_list)
            {
                Console.WriteLine("Task {0} Status: {1}", t.Id, t.Status);
            }
Console.ReadKey();
}

3 Task のメソッド定義は次のとおりです。

public async Task<HttpResponseMessage> Task_Method1()
{
    //Code for Response

     return Response;
} 
public async Task<HttpResponseMessage> Task_Method2()
{
    //Code for Response

     return Response;
} 
public async Task<HttpResponseMessage> Task_Method3()
{
    //Code for Response

     return Response;
} 

問題は、それらが並行して実行されており、タスクのシリアル化された順序がないことです。私はたくさん検索しましたが、それらを連続して実行するための適切な解決策が得られませんでした。参考までに、以下の画像を参照してください。

RUN1: ここに画像の説明を入力

RUN2: ここに画像の説明を入力

RUN3: ここに画像の説明を入力

4

1 に答える 1