비동기 및 대기 : UI를 차단하지 않고 비동기 프로그래밍을 단순화합니다.
및는 비동기 프로그래밍의 강력한 도구로 코드 가독성 및 유지 관리 가능성을 향상시킵니다. 그러나 그들의 작동은 기존의 배경 스레드와 크게 다릅니다. 그들의 행동을 명확히하자. <:>이 코드를 고려하십시오 :
키워드는 컴파일러에게 상태 머신을 생성하도록 신호를 보냅니다. 이 기계는 비동기 작업의 수명주기를 관리합니다.async
(표시되지는 않지만 를 포함한다고 가정)는 5 초 지연을 도입합니다. 그러나 await
를 재개하고 결과를 에 할당합니다.
와 달리 , 및
는 새 스레드를 생성하지 마십시오. 대신 스레드 풀과 상태 기계를 활용하여 비동기 작업을 효율적으로 관리하여 UI 동결을 방지하고 동시 실행을 가능하게합니다. 이것은 비동기 프로그래밍에 대한 더 깨끗하고 효율적인 접근 방식을 제공합니다.<code class="language-csharp">private async void button1_Click(object sender, EventArgs e) { Task<int> access = DoSomethingAsync(); // Other UI-responsive tasks here int a = 1; // This executes immediately, not after the 5-second delay int x = await access; // Execution pauses here until DoSomethingAsync completes }</code>
위 내용은 UI 스레드를 차단하지 않고`async`와`await '는 어떻게 비동기 작업을 관리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!