2013-04-01 2 views
0

스레드 A가 스레드 B에서 작업을 마칠 때까지 기다리는 데 'await'을 사용한다고 가정하고 작업 B에서 B가 사용 중이면 A는 '일시 중단 지점'으로 표시되어있는 것으로 간주됩니다. 그리고 A의 실행 흐름은 일시 중단 된 코드 블록의 '호출자'방법으로 계속됩니다. B가 완료되면 A에게 정지 지점에서 계속하라고 알립니다.대기/비동기는 어떻게 작동합니까?

내 질문은 :

  • 는 서스펜션 포인트 유지 컨텍스트 정보의 내용은 무엇입니까?

  • 컨텍스트 정보는 어떻게 저장됩니까?

  • B가 A에게 완료 사실을 알리는 방법은 무엇입니까?

  • A의 컨텍스트 정보는 어떻게 복원됩니까? (일단 A에 대한 컨텍스트 정보가 복원되면 A가 일시 중지 지점에서 다시 시작됩니다.)

  • 컴파일러에서의 'async'및 'await'의 효과는 각각 무엇입니까? 즉, 컴파일러는 커튼 뒤에 어떤 특수 작업을 수행합니다.

답변

3

먼저 스레드를 잊어 버리십시오. asyncawait은 스레딩과 관련이 거의 없으며 재 작성 방법과 관련이 있으므로 연속 통과 스타일을보다 쉽게 ​​사용할 수 있습니다.

async/await intro post을 읽은 다음 MSDN documentation (매우 좋습니다)을 따르는 것이 좋습니다. 마지막 질문을 제외한 모든 질문에 답할 것이므로 가장 좋은 답변은 Jon Skeet's eduasync blog series입니다.

+0

시간 제한으로 인해 참조 자료를 가져 주셔서 감사합니다. 지금까지는 몇 가지 자료 만 읽었습니다. 나는 링크를 읽는 데 시간을 할애 할 것이다. – smwikipedia

관련 문제