정성태님 C# 10 책에 681쪽 맨 밑에 예제를 보면 스레드 ID를 출력하잖아요.
예제)
Console.WriteLine("Before ReadAsync: " + Environment.CurrentManagedThreadId);
await fs.ReadAsync(buf, 0, buf.Length);
Console.WriteLine("After ReadAsync: " + Environment.CurrentManagedThreadId);
당연히 성태님 말씀대로 스레드 ID가 무조건 다를 줄 알았는데 화면에
Before ReadAsync: 1
After ReadAsync: 1
이렇게 계속 나와서
이상해서
여러 번 계속 반복 적으로 실행시켜야 그때 ID가 다르게 출력 되었습니다.
await 키워드의 비동기 호출은 무조건 별도의 스레드 할당을 하는 게 아닌 건가요?
컴퓨터의 상태에 따라 다른건지...
궁금합니다.
[최초 등록일: ]
[최종 수정일: 1/28/2023]