Do 작업 방법의 비동기성: Task.Run과 Async 키워드
비동기 프로그래밍 영역에서 비동기 실행과 비동기 실행의 차이점은 다음과 같습니다. 기다림은 미묘할 수 있습니다. Task.Run과 async 키워드의 세부 사항을 자세히 살펴보고 동기식 또는 비동기식으로 실행되는 메서드를 만드는 데 있어 해당 키워드의 역할을 이해해 보겠습니다.
비동기 실행: Task.Run
Task.Run 메서드를 사용하면 코드 실행을 백그라운드 스레드에 위임할 수 있습니다. Task.Run을 사용하면 코드를 캡슐화하는 Task 개체를 생성하여 현재 실행 경로를 차단하지 않고 코드를 비동기적으로 실행할 수 있습니다. 그러나 Task.Run을 사용한다고 해서 반드시 메서드를 대기 가능하게 만드는 것은 아닙니다.
대기성: 비동기 키워드
비동기 메서드는 대기 시 일시 중지하고 다시 시작할 수 있는 메서드입니다. 표현. 이를 통해 메서드는 차단 없이 호출 스레드에 실행 지점을 다시 제공할 수 있습니다. 비동기로 선언된 메서드는 Task 또는 Task
예: Async/Await 없이 실행
// Not async because it does not use await private Task<int> DoWorkAsync() { return Task.Run(() => { return 1 + 2; }); }
이 예에서는 Task
예: Await를 사용한 비동기 실행
private async Task<int> GetWebPageHtmlSizeAsync() { var client = new HttpClient(); var html = await client.GetAsync("http://www.example.com/"); return html.Length; }
이 예에서 메소드는 비동기로 선언되었으며 HttpClient.GetAsync 작업에서 실행을 일시 중지하기 위해 대기를 사용합니다. 이 메소드는 웹페이지가 다운로드되는 동안 호출자에게 반환되고 결과가 제공되면 재개됩니다.
모범 사례:
결론:
Task.Run은 코드를 백그라운드 스레드에 위임하여 비동기 실행을 용이하게 합니다. async 키워드는 대기 가능성을 활성화하고 메소드가 실행을 일시 중지하고 재개할 수 있도록 하여 응답성이 뛰어나고 효율적인 코드를 생성할 수 있는 유연성을 제공합니다.
위 내용은 Task.Run 대 Async 키워드: 비동기 작업에 각각을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!