await 와 async 의 메커니즘
12763 단어 C#
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 가 프로그램 을 막 고 프로그램의 반환 값 을 기다 리 며 비동기 프로그램 반환 값 을 가 져 와 야 아래로 실 행 됩 니 다.
이 문장 을 참고 하 시 오
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.