비동기 작업을 병렬로 실행하고 .NET 4.5에서 결과 수집
소개:
장기 실행 작업을 동시에 실행하고 결과를 수집하는 것은 .NET 애플리케이션의 일반적인 요구 사항입니다. .NET 4.5에서는 비동기 프로그래밍이 도입되면서 전통적인 스레드 기반 접근 방식이 발전했습니다. 이 문서에서는 .NET 4.5에서 비동기 작업의 병렬 실행을 구현하는 가장 좋은 방법을 살펴봅니다.
원본 코드:
제공된 코드는 Task.Run()을 사용하여 두 개의 장기 실행 작업을 시작한 다음 Result를 사용하여 해당 결과를 검색하는 기본 접근 방식을 보여줍니다. 그러나 이 방법에는 몇 가지 제한 사항이 있습니다.
잘못된 코드:
비동기 메서드를 호출하여실행되지 않는 작업을 생성
최상의 솔루션:
가장 좋은 솔루션은 장기 실행 작업의 비동기 버전을 사용하고 Task.WhenAll() 메서드를 활용하는 것입니다. 예시는 다음과 같습니다.
<code class="language-csharp">async Task<int> LongTask1() { // ...长时间运行的任务1... return 0; } async Task<int> LongTask2() { // ...长时间运行的任务2... return 1; } // ... { Task<int> t1 = LongTask1(); Task<int> t2 = LongTask2(); await Task.WhenAll(t1,t2); //现在我们可以访问t1.Result和t2.Result }</code>
이 코드는 LongTask1 및 LongTask2에 대한 비동기 작업을 생성한 다음 Task.WhenAll()을 사용하여 완료될 때까지 기다립니다. 이를 통해 작업을 차단하지 않고 동시에 실행할 수 있습니다. 마지막으로 t1.Result 및 t2.Result를 사용하여 결과에 액세스할 수 있습니다.
위 내용은 .NET 4.5에서 병렬 비동기 작업의 결과를 효율적으로 실행하고 수집하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!