async로 선언 된 비동기 메서드가 반환 유형이 Task 또는 Task 인 경우 <TResult> 기다릴 수 있습니다. 메서드 내에서 C# 코드에서는 아무 작업도 반환되지 않지만 작업 <의 경우 TResult >의 값은 TResult입니다. 예를 들면 다음과 같습니다.작업을 반환하는 비동기 메서드가 반환하는 작업은 무엇을 나타 냅니까?
private static async Task<int> AsyncDemo()
{
await Task.Delay(1000);
return 1;
}
결과 IL 코드는 컴파일 된 상태 시스템을 시작한 AsyncTaskMethodBuilder의 작업을 반환합니다. 제 질문은이 임무가 실제로 무엇을 나타내는가하는 것입니다. 나는 그것이 쓰레드가 아니라, 상태 머신의 실행을 나타내는 작업이라고 가정한다. 또한 상태 머신이 완료되거나 예외가 발생할 때 오류 상태로 설정되면 작업이 완료된다고 가정합니다. 나는 명확한 점을 고맙게 생각한다.
스티븐 감사합니다. –