> 백엔드 개발 > C++ > .NET 4.5에서 두 개의 비동기 작업을 동시에 실행하고 결과를 얻으려면 어떻게 해야 합니까?

.NET 4.5에서 두 개의 비동기 작업을 동시에 실행하고 결과를 얻으려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2025-01-13 07:34:42
원래의
490명이 탐색했습니다.

How Can I Run Two Async Tasks Concurrently and Get Their Results in .NET 4.5?

.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:

의 기능을 활용합니다.
  • LongTask1LongTask2은 장기 실행 작업을 나타내는 비동기 메서드입니다. Task.Delay()을 실제 비동기 논리로 바꾸는 것을 잊지 마세요.
  • Task.WhenAll(task1, task2) 진행하기 전에 두 작업이 모두 완료되도록 하여 결과를 효과적으로 동기화합니다.
  • task1.Resulttask2.Result는 실행이 완료된 후 각 작업의 반환 값에 대한 액세스를 제공합니다.

이 접근 방식은 이전 방법에 비해 더 명확하고 효율적이며 진정한 비동기 솔루션을 제공하므로 Task.Run()Thread.Sleep()과 같은 비효율적인 차단 호출이 필요하지 않습니다. .NET 4.5에서 동시 비동기 작업을 처리하는 데 권장되는 방법입니다.

위 내용은 .NET 4.5에서 두 개의 비동기 작업을 동시에 실행하고 결과를 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿