쓰레드를 사용하던 예전 방식을 완전히 대체 할 수 있습니까?
아니요. 스레드는 더 많은 유용한 작업을 수행 할 수 있습니다. 기다리고 있습니다 특별히 처리하도록 설계되었습니다 무언가가 가장 일반적으로 I / O 요청을 시간을내어. 전통적으로 I / O 요청이 완료되었을 때 콜백으로 수행되었습니다. 이러한 콜백에 의존하는 코드를 작성하는 것은 매우 어렵습니다. await는 매우 간단합니다.
스레드가 비동기 적으로 할 수있는 일을 할 수 있습니까?
대충. Await는 지연을 처리하기 만하면됩니다. 그렇지 않으면 스레드가 수행하는 작업을 수행하지 않습니다. await 키워드 오른쪽에있는 await 표현식 은 작업을 완료하는 것입니다. 이상적으로는 스레드를 전혀 사용하지 않고 드라이버 요청을 게시하고 드라이버가 데이터 전송을 완료하면 완료 알림 콜백을 생성합니다. 네트워킹은 가장 일반적인 용도이며 수백 밀리 초의 지연 시간이 일반적이며 데스크톱 또는 LAN에서 "클라우드"로 이동하는 서비스의 불가피한 부작용입니다. 이러한 서비스를 동 기적으로 사용하면 UI가 매우 응답하지 않게됩니다.
WebClient.DownloadStringAsync와 같은 일부 메서드에서만 사용할 수 있습니다.
아니요. Task를 반환하는 모든 메서드와 함께 사용할 수 있습니다. XxxxAsync () 메서드는 시간이 걸리는 일반적인 작업을 위해 .NET 프레임 워크에서 미리 조리 된 것입니다. 웹 서버에서 데이터를 다운로드하는 것과 같습니다.