.NET 4.5는 동시 장기 실행 작업을 관리할 때 문제를 제시합니다. Task.Run()
는 기본적인 접근 방식을 제공하지만 비동기 기능을 완전히 활용하는 효율성과 우아함이 부족합니다.
우수한 솔루션은 async
/await
을 활용하여 진정한 비동기식 Sleep
메소드를 생성하여 중단 및 효율적인 재개를 가능하게 합니다. Task.WhenAll()
동시에 여러 작업의 완료를 기다립니다.
개선된 코드 예:
<code class="language-csharp">public static async Task Go() { Console.WriteLine("Initiating tasks"); Task<int> task1 = SleepAsync(5000); Task<int> task2 = SleepAsync(3000); await Task.WhenAll(task1, task2); int totalSleepTime = task1.Result + task2.Result; Console.WriteLine($"Total sleep time: {totalSleepTime} ms"); } private static async Task<int> SleepAsync(int ms) { Console.WriteLine($"Sleeping for {ms} ms"); await Task.Delay(ms); Console.WriteLine($"Sleep of {ms} ms COMPLETE"); return ms; }</code>
이 향상된 코드는 async
내의 비차단 지연을 위해 Task.Delay()
및 SleepAsync
을 사용합니다. Go
은 Task.WhenAll()
을 통해 두 작업을 동시에 시작하여 병렬 실행을 가능하게 합니다. 완료 시 Result
속성을 사용하여 결과에 액세스합니다.
위 내용은 .NET 4.5를 사용하여 여러 비동기 작업을 병렬로 효율적으로 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!