비동기 프로그래밍에서 및
많은 개발자들이 비동기 프로그래밍에서 및
의 작업 메커니즘에 대해 혼란스러워합니다. 사용의 신비를 이해하기 위해 우리는 그들의 메커니즘을 탐구하고 그것들의 차이를 보여주고 배경 스레드를 생성 할 것입니다.
명확하게 및 사용 async await
예제는 "button1_click"사고에서 및 의 사용을 강조합니다. 이 방법은 가 매우 중요하지만이 방법은 배경 스레드를 생성하는 것과 다릅니다. 대신, 비동기 프로그래밍은 컴파일러에서 관리하는 상태 머신을 백그라운드에서 사용합니다.
코드에서 "dosomethingasync ()"를 시작한 후 코드는 작업과 관련이없는 작업을 계속 수행합니다. "Access"변수는 끝날 작업이 있습니다. "Accense Access"문에 도달하면 코드가 중단되고 현재 스레드가 릴리스됩니다.
배경 실행을 이해
async
귀하의 가정과 달리 "DosomethingAsync ()"는 배경 스레드에서 실행되지 않습니다. 현재 스레드를 사용하고 휴면 작업을 시작합니다. 완료 후 상태 기계는 실행을 재개하고 "Button1_Click"을 계속 실행할 수 있습니다. await
보다 포괄적 인 비동기 예
명확한 이해를 제공하려면 다음 예제를 고려하십시오.
<:>이 장면에서 :
"myMethodasync ()"시작 "longruningoperationAsync ()"를 시작합니다. async
Executive Independent Work를 사용하면 기본 스레드가 계속 될 수 있습니다. await
"LongrunningTask를 기다리는"주 스레드가 서스펜션을 해제하고 실행합니다.
"longrunningoperationAsync ()"가 완료되지 않은 경우 스레드 풀의 스레드가 "myMethodasync ()"를 복원하고 작업이 완료된 후에도 계속 실행됩니다.
"longrunningoperationAsync ()"가 완료되면 결과를 즉시 사용할 수 있습니다.
async
이 예제는 비동기 프로그래밍이 어떻게 쉽게 쓰는 쓰기와 효율적인 코드를 차단하지 않고 원활한 실행 프로세스를 보장하는 방법을 보여줍니다. await
위 내용은 `async`와`bewait '는 배경 스레드를 산란하지 않고 비동기 프로그래밍에서 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!