Microsoft MVP성태의 닷넷 이야기
await 2번 [링크 복사], [링크+제목 복사]
조회: 1340
글쓴 사람
강성욱 (dnr2144 at gmail.com)
홈페이지
첨부 파일
 
안녕하세요. async / await를 공부하다가 이해가 안 돼서 질문드립니다. 제가 한 이해가 맞나 확인받고 싶습니다.

async 키워드를 쓴 메서드를 호출하는 스레드가 주 스레드라고 하겠습니다. 그럼 await 키워드가 나타나기 전까지의 명령은 주 스레드가 실행시키는 것이고 await 이후의 명령은 Task로 인해 스레드가 생성돼서 별도의 흐름으로 실행되는 게 맞습니까? 만약 그렇다면 하나의 메서드에서 await 가 두 개 이상 있다면 스레드 흐름도 두 개가 생기는 건가요? C# 7.1의 682페이지 내용이 이해가 잘 안 됩니다. 저는 메서드 내에서 await가 1개면 이해가 되는데 2개 이상이면 실행 흐름이 이해가 잘 안 됩니다....




donaricano-btn



[최초 등록일: ]
[최종 수정일: 3/27/2020 ]


비밀번호

댓글 쓴 사람
 



2020-03-28 03시41분
주 스레드가 await 이전의 코드를 실행 중이다가, await을 만나게 되면 그 이후의 코드는, 1) 스레드 풀에 있던 스레드 2) 사용자가 일부러 만든 Task 3) 또는 주 스레드가 실행할 수 있습니다. 1 ~ 3번의 방법은 사용자가 지정할 수 있는데, 일반적으로 지정하지 않은 기본 값 상황이라면 1)번의 방법대로 선택된 스레드가 await 이후의 코드를 실행하게 됩니다.

이후 await이 몇 개가 나오던지에 상관없이 위의 규칙은 동일합니다.

(위의 답변을 읽고 여전히 이해가 안 된다면 또 그 부분에 대해서 질문을 남겨 주세요. ^^)
정성태

1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5437한예지12/25/2020939for문 안에 있는 지역변수의 생성 및 유지 기간에 대해 질문드립니다! [6]
5436영귤12/24/2020789fixed는 자동으로 stackalloc이 되는 건가요? [1]
5435한예지12/24/2020831ArraySegment, Span, ReadOnlySpan 질문있습니다! [1]
5434한예지12/23/20201004ToString 재정의 질문있습니다! [8]
5433한예지12/23/2020639List<ArrarySegment<int>> 사용법 질문드립니다! [1]
5431한예지12/17/2020955비동기 소켓 서버 질문 드립니다! [1]
5430종범12/16/20201027[WPF] Task 관련 재질문 드립니다. [2]파일 다운로드1
5429종범12/16/2020936[WPF] Task 관련 질문 드립니다. [1]파일 다운로드1
5428최선호12/14/20201065성태님 ㅠ.ㅠ 소켓 서버 작동이 이상합니다 ㅠ.ㅜ [1]파일 다운로드1
542712/11/2020883LPBOOL Win32 마샬링 질문이 있습니다. [6]
5426하태12/11/2020723안녕하세요 정성태님! C# winform Calendar 컨트롤 질문 드리겠습니다!. [1]
5425정유경12/10/2020723[왕초보] (4) [1]
5423정유경12/8/2020914[왕초보] (3) [2]
5422이승준12/7/20201148VisualStudio 2019의 인텔리센스가 느려지는 경우가 있나요? [4]
5421정유경12/6/2020964[왕초보] (2) [4]
5420정유경12/5/2020830[왕초보] 랜덤 숫자와 배열에 관한 질문 [1]
5419종범12/4/20201092[WPF] Threadpool사용 시 크리티컬 섹션 대응 질문 입니다. [4]
5418한예지11/27/20201038클래스, 인터페이스 크기를 구하고 싶은데 어떻게 해야 될까요? [1]
5417한예지11/27/2020843인터페이스와 추상클래스에 대해 궁금증이 있습니다. [1]
5416한예지11/27/2020755Object 질문 있어요. [1]
5415한예지11/25/2020694교재 213쪽 예제 4.25 질문드립니다. [1]
5414한예지11/23/2020989제네릭 리스트 출력하는 방법이 궁금합니다. [1]
5413민석11/20/20201159C# minidump를 프로그램이 중단 될 때 만들고 싶습니다. [1]파일 다운로드2
5411원격11/20/2020726visualstdio로 웹 사이트로 만들었을때 원격 디버깅이 가능한가요? [1]
5410최성재11/16/20201032vcpkg로 GDCM 내려받을 때 USE_VTK 설정하는 방법-2번째 질문 [1]파일 다운로드1
5409민성11/16/2020903혹시 다른 질문이긴 한데요 [1]
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...