await 와 async 의 메커니즘

12763 단어 C#
await 는 보통 async 와 함께 사용 합 니 다.async 는 비동기 이 고 await 는 비동기 의 반환 값 을 기다 리 고 있 습 니 다.다음 테스트 를 볼 수 있 습 니 다.
        public async Task<string> call()
        {
            Debug.WriteLine("----------->1");
            int s = await foo();
            Debug.WriteLine("----------->2");
            return "1";
        }
        public async Task<int> foo()
        {
            Debug.WriteLine("----------->3");
            await Task.Delay(500);
            Debug.WriteLine("----------->4");
            return 1;
        }

실행 결과
----------->1
----------->3
----------->4
----------->2

여 기 는 await 후의 방법 이 실 행 된 후에 야 아래로 실 행 됩 니 다.
분리 await,프로그램 호출,반환 값 수락 분리
        public async Task<string> call()
        {
            Debug.WriteLine("----------->1");
            Task<int> infoTask = foo();
            Debug.WriteLine("----------->2");
            int s = await infoTask;
            Debug.WriteLine("----------->3");
            return "1";
        }
        public async Task<int> foo()
        {
            Debug.WriteLine("----------->4");
            await Task.Delay(500);
            Debug.WriteLine("----------->5");
            return 1;
        }
        public async Task<string> call()
        {
            Debug.WriteLine("----------->1");
            Task<int> infoTask = foo();
            Debug.WriteLine("----------->2");
            int s = await infoTask;
            Debug.WriteLine("----------->3");
            return "1";
        }
        public async Task<int> foo()
        {
            Debug.WriteLine("----------->4");
            await Task.Delay(500);
            Debug.WriteLine("----------->5");
            return 1;
        }

실행 결과
----------->1
----------->4
----------->2
----------->5
----------->3

await 가 프로그램 을 막 고 프로그램의 반환 값 을 기다 리 며 비동기 프로그램 반환 값 을 가 져 와 야 아래로 실 행 됩 니 다.
이 문장 을 참고 하 시 오

좋은 웹페이지 즐겨찾기