Main에서 비동기 메서드 호출: 종합 가이드
소개
다음과 같은 경우에 질문이 발생합니다. 개발자는 Main 메서드와 같은 기존 동기 컨텍스트에서 비동기 메서드를 호출해야 합니다. 이러한 상황은 C#에서 비동기 프로그래밍 영역을 탐색할 때 자주 발생합니다.
문제
다음과 같은 비동기 방식을 고려할 때:
public class test { public async Task Go() { // ... various async operations } }
프로그램의 동기 항목인 Main 메서드에서 Go를 호출하려고 할 때 딜레마가 발생합니다. point.
해결책
C# 7.1 이상 버전에서는 Main에서 비동기 메서드를 호출하는 것이 간단합니다.
static async Task Main(string[] args) { test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey(); }
이 코드는 다음을 보장합니다. Go의 비동기 작업은 프로그램이 끝나기 전에 완료됩니다.
C# 이전 버전의 경우 7.1에서는 다른 접근 방식이 필요합니다.
static void Main(string[] args) { test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey(); }
Wait()를 호출하면 Go의 비동기 작업이 완료될 때까지 현재 스레드가 차단됩니다.
비동기 메서드의 이점
코드를 복잡하게 만들고 유지 관리를 어렵게 만드는 콜백을 제거하는 것이 비동기 프로그래밍의 주요 장점입니다. async 키워드를 사용합니다. 이는 다른 작업이 동시에 진행될 수 있도록 하면서 깔끔하고 순차적인 실행 흐름을 가능하게 합니다.
위 내용은 C#의 동기식 기본 메서드에서 비동기 메서드를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!