Main에서 비동기 메서드 호출: 종합 가이드
비동기 프로그래밍 영역에서는 비동기 프로그래밍이 필요한 상황에 직면하는 것이 드문 일이 아닙니다. Main 메서드에서 직접 비동기 메서드를 호출합니다. 비동기 프로그래밍의 이점을 활용하려면 이를 달성하는 방법을 이해하는 것이 중요합니다.
Main에서 비동기 메서드 호출
다음 코드 조각을 고려하세요.
공개수업 test
{
public async Task Go() { await PrintAnswerToLife(); Console.WriteLine("done"); } public async Task PrintAnswerToLife() { int answer = await GetAnswerToLife(); Console.WriteLine(answer); } public async Task<int> GetAnswerToLife() { await Task.Delay(5000); int answer = 21 * 2; return answer; }
}
다양한 접근 방식
비동기 호출에는 여러 가지 접근 방식이 있습니다. Main 메소드의 메소드:
1. Async Main 메서드(C# 7.1 이상)
C# 7.1 이상 버전의 경우 Main 메서드를 async로 표시할 수 있습니다. 이를 통해 다음 예제에서 볼 수 있듯이 Main 메서드 내에서 비동기 메서드를 직접 사용할 수 있습니다.
<br>static async Task Main(string[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey();
}
2. "Wait" 메서드 호출
이전 버전의 C#에서는 Wait 메서드를 사용하여 비동기 메서드가 완료될 때까지 스레드를 차단할 수 있습니다. 이 접근 방식은 아래에 설명되어 있습니다.
<br>static void Main(string[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey();
}
3. OnCompleted 콜백(레거시 접근 방식)
어떤 경우에는 초기 코드 조각에 표시된 대로 OnCompleted 콜백을 사용해야 할 수도 있습니다. 그러나 이 접근 방식은 교착 상태로 이어질 수 있으므로 가능하면 피해야 합니다.
최적 접근 방식
C# 7.1 이상에서는 async Main 메서드를 사용하는 것이 좋습니다. 코드를 단순화하고 콜백 기반 호출이 필요하지 않기 때문에 접근 방식을 사용합니다. 이전 버전의 C#에서는 Wait 메서드를 사용할 수 있지만 스레드 차단과 관련된 잠재적인 성능 영향에 유의하는 것이 중요합니다.
결론
비동기 메서드 호출 Main 메서드에서 다양한 기술을 통해 달성할 수 있습니다. 다양한 접근 방식과 그 의미를 이해하면 특정 요구 사항과 사용 중인 C# 버전에 따라 최적의 솔루션을 선택할 수 있습니다.
위 내용은 C#의 기본 메서드에서 비동기 메서드를 올바르게 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!