1. 程式人生 > 其它 >C# Task.WhenAll

C# Task.WhenAll

.C# Task.WhenAll

有時候我們需要同時執行一些操作,然後把這些操作的結果進行彙總,以達到用非同步處理降低操作耗時的效果,此時我們會考慮使用Task,而Task.WhenAll則排上了用場。

有時候我們需要同時執行一些操作,然後把這些操作的結果進行彙總,以達到用非同步處理降低操作耗時的效果,此時我們會考慮使用Task,而Task.WhenAll則排上了用場。

 

 async void TestTaskWhenAll()
        {
            var total =10;
            Task<string>[] tasks = new Task<string>[total];
            for (int i = 0; i < total; i++)
            {
                tasks[i] =  Convert("test "+ i );
            }
            await Task.WhenAll(tasks);
            foreach (var task in tasks)
            {
                Debug.WriteLine("task.Id =" + task.Id + "  task.Status=" + task.Status + " result:"+ task.Result);

            }


            return;
        }

 Random rnd = new Random();
        async Task Convert(string str)
        {

            await  Task.Delay(rnd.Next(1000,6000));
            Debug.Print(str+" OK");
            return "task " + str;
         }