Microsoft MVP성태의 닷넷 이야기
p654 의 비동기 관련 설명 [링크 복사], [링크+제목 복사],
조회: 22486
글쓴 사람
윤종현 (oscar.yoon at gmail.com)
홈페이지
첨부 파일
 

p654 의 비동기 처리 확인을 위해 스레드 ID를 출력하는 내용이 있는데요,

byte[] buf = new byte[fs.Length];

Console.WriteLine("Before ReadAsync: " + Thread.CurrentThread.ManagedThreadId);

await fs.ReadAsync(buf, 0, buf.Length);

Console.WriteLine("Before ReadAsync: " + Thread.CurrentThread.ManagedThreadId);

string txt = Encoding.UTF8.GetString(buf);
Console.WritLine(txt);

이 코드 설명을 await 호출 전과 후의 스레드 ID가 다르다라고 하셨는데, 좀 이상해서 직접 실행해봤더니, 같게 나오더라고요. fs.ReadAsync 만 다른 스레드에서 호출되고, 이후의 실행은 fs.ReadAsync 가 처리되고, 원래 호출 스레드(여기서는 메인 스레드)에서 실행되어야 하지 않을까요? 그렇지 않으면, await 호출 이후의 아래 쪽 내용들에서 접근하는 메인 스레드의 모든 데이터에 대해 락을 걸어야 할텐데요.









[최초 등록일: ]
[최종 수정일: 1/10/2014]


비밀번호

댓글 작성자
 



2014-01-10 01시20분
혹시 테스트를 Winform(또는 WPF) 프로그램에서 하셨나요?
정성태
2014-01-21 05시56분
이상하네요. 저는 ThreadId 값이 다르게 출력되던데요.
Nari Kim
2014-01-21 09시27분
책에서와 같이 콘솔 응용 프로그램에서 하는 경우 스레드 ID가 다르게 나오는데요. WPF/WinForm 등에서 테스트하면 스레드 ID가 동일하게 나올 수 있습니다. 그에 대해서는 다음의 글을 참고하세요.

async/await 사용시 hang 문제가 발생하는 경우
; http://www.sysnet.pe.kr/2/0/1541
정성태

... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...
NoWriterDateCnt.TitleFile(s)
5202민성8/6/201918165WPF에서 <Application.Resources에 xaml에 있는 icon 값을 저장하고 xaml에 불러다 사용하고 싶은데요 [1]
5201김대훈8/3/201918509상속시 생성자에 대해 질문드립니다 [3]
5200농상7/30/201921631foreach로 데이터 변경 [2]
5190오리다람7/20/201918459질문드립니다. [3]
5189진우7/19/201917118C# 스레드풀 코어별 실행 문의 [2]
5188황태관7/19/201916611비주얼베이직 2019 실행 할때 마다.. [3]
5187플하7/19/201920159UWP 관련 궁금한 사항에 대해서 [1]
5186김대훈7/14/201919181박싱과 언박싱에 대해 [2]
5185농상7/13/201917162Nullable에 대해서 [1]
5184김대훈7/4/201916640저자님의 책을 다 본후에는 [2]
51837/2/201918628.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/201917913wpf 질문 드립니다. [1]파일 다운로드1
51817/1/201919792DataGridview Doublebuffer 에 대해서 질문드립니다. [2]
5180김대훈6/25/201919529배열과 반복문에서 질문드립니다 [2]
5177농상6/13/201922103멀티스레드 건의 [2]
5176이선호6/13/201918487안녕하세요. 닷넷 문제로 검색하다 알게되어 들어왔습니다. 현재 IIS 문제가 있어 질문드립니다. [1]
5175Chobo6/12/201918529WPF Ellipse 그리기! [3]
5174농상6/11/201918426ThreadPool 조인에 관해 [1]
5173전우치6/9/201919357공유 리소스에 대한 스레드 동기화 처리를 위해서 lock 이용 시 문의 [3]
5172김대훈6/7/201917842너무힘드네요 공부에 대한조언부탁드립니다 [2]
5171조남석6/4/201917358EX)11-2(treeview)에 대한 질문입니다. [3]
5170레리6/4/201918189Setup 프로젝트 레지스트리 설정 관련 질문입니다. [1]파일 다운로드1
5169농상6/3/201917900멀티스레드 파라미터 관련 [2]
5168익명유저5/30/201917289항상 정말 감사드립니다... [1]
5167WPF5/23/201917951질문드립니다. [1]
5165이대희5/22/201916304Visual Studio 설치 구성요소 문의 (C# 7.3 개정판 관련) [1]
... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...