일반적인 오해와는 달리 Async/Await은 새로운 스레드를 생성하지 않습니다. 대신, 그것은 협력적인 멀티 태스킹을 사용하여 응용 프로그램 대응 성을 크게 향상시킵니다.
Async/Await가 작동하는 방법
컴파일러는 비동기/를 사용하여 메소드를 영리하게 나누어 두 섹션으로 나눕니다.
가 비동기 연산의 시작을 포함하여
키워드를 기다리기 전에
대기하는 실행 시퀀스 :
메소드가
대기할 때까지 실행됩니다 문. 비동기 조작 (예 :
GetSomethingAsync () )가 호출됩니다. 이 작업은 보류중인 결과를 반환합니다 (
작업
synchronizationcontext 비동기 조작이 끝나면 (종종 지연 후)
synchronizationContext
synchronizationcontext
는 메시지 루프 큐에 메시지를 추가하고 Part 2의 실행을 트리거합니다. 메시지 루프는 이것을 처리하고 개선 된 응답 성
비동기 조작이 보류 중이지만 메시지 루프는 사용자 입력 및 UI 업데이트를 자유롭게 처리하여 응용 프로그램의 응답을 유지할 수 있습니다. 완료되면 Part 2는 응용 프로그램 상태를 업데이트합니다.
중요한 고려 사항 :
async/await는 스레드 생성이 아닌
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3