.NET 4.5에서 동시 비동기 작업의 효율적인 실행 및 결과 검색
이 가이드에서는 .NET 4.5 프레임워크 내에서 두 개의 비동기 작업을 동시에 실행하고 해당 결과를 효율적으로 수집하는 간소화된 방법을 보여줍니다. Task.Run()
및 Thread.Sleep()
을 사용하는 이전 접근 방식은 비동기 작업에 적합하지 않습니다.
개선된 솔루션은 다음과 같습니다.
<code class="language-csharp">async Task<int> LongTask1() { // Simulate a long-running operation await Task.Delay(1000); // Replace with your actual asynchronous task return 0; } async Task<int> LongTask2() { // Simulate a long-running operation await Task.Delay(1500); // Replace with your actual asynchronous task return 1; } // ... within your main method ... { Task<int> task1 = LongTask1(); Task<int> task2 = LongTask2(); await Task.WhenAll(task1, task2); // Access results after both tasks have completed int result1 = task1.Result; int result2 = task2.Result; // ... process result1 and result2 ... }</code>
이 세련된 코드는 async
/await
:
LongTask1
및 LongTask2
은 장기 실행 작업을 나타내는 비동기 메서드입니다. Task.Delay()
을 실제 비동기 논리로 바꾸는 것을 잊지 마세요.Task.WhenAll(task1, task2)
진행하기 전에 두 작업이 모두 완료되도록 하여 결과를 효과적으로 동기화합니다.task1.Result
및 task2.Result
는 실행이 완료된 후 각 작업의 반환 값에 대한 액세스를 제공합니다.이 접근 방식은 이전 방법에 비해 더 명확하고 효율적이며 진정한 비동기 솔루션을 제공하므로 Task.Run()
및 Thread.Sleep()
과 같은 비효율적인 차단 호출이 필요하지 않습니다. .NET 4.5에서 동시 비동기 작업을 처리하는 데 권장되는 방법입니다.
위 내용은 .NET 4.5에서 두 개의 비동기 작업을 동시에 실행하고 결과를 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!