Microsoft MVP성태의 닷넷 이야기
p654 의 비동기 관련 설명 [링크 복사], [링크+제목 복사],
조회: 20177
글쓴 사람
윤종현 (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
정성태

... 46  [47]  48  49  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
4695popo3/9/201618045wpf의 ICommand 질문 입니다. [5]파일 다운로드1
4694아무개2/28/201619102책 잘보고있습니다~ [1]
4693초보2/25/201617060카카오톡 오류 질문 [1]
3701강준2/19/2016263692개의 DataTable Join 결과 전체 컬럼을 DataTable 로 리턴하기 [5]
3700박성훈2/18/201618496시작하세요! C# 6.0 프로그래밍 105쪽 예제 질문 [1]
3699박성훈2/18/201617141공부 방향성 질문 [2]
3698강준2/16/201617248Entity Framework 에서 Select for Update 가 가능한가요??? [1]
3697ds2/16/201617055어느 정도 문법을 알고 나면 [6]
3695Bere...2/15/201620593호출당한 메서드가 호출한 메서드를 알 수 있는 방법이 일반적인 방법 말고도 있을까요? [2]
3693조영준2/11/201621473UWP 앱을 만들고 있습니다. 죄송하지만 몇 가지 질문 드립니다. [4]
3692후배2/8/201621231html/css/js를 이용한 winForm의 UI표현이 가능 한가요? [3]
3690김대석2/5/201619050문의 드립니다. [2]
3687허재영2/3/201620681web api 보안관련 질문입니다. [2]
3685조진우2/1/201620534메인 응용 프로그램에서 DLL을 실시간으로 접근하여 사용하는데 이것을 모니터링 할 수 있을 까요? [1]
3684나그네1/27/201619650안녕하세요..wcf 관련하여 질문있습니다. [4]파일 다운로드1
3683김태형1/25/201620317 안녕하세요 저작도서를 구매하려는데 한가지 문의 사항이 있어서 질문드립니다. [1]
3681이영균1/8/201623379IE브라우저 추가기능관리의 항목을 사용함으로 c#코드로 변경을 하려고 합니다. [8]
3680후배1/6/201622995추천할만한 소켓 라이브러리 있으신가요? [2]
3679초록물꼬기1/6/201622124Parallel.For 에서 동기화문제에 관한 질문입니다. [11]파일 다운로드1
3678김민우1/3/201620493IHS 오류에 대한 질문입니다. [2]파일 다운로드1
3677초록색우산12/31/201521619HTTP 통신 - WebClient 이용시 한글깨짐 현상 발생 [2]
3676서정열12/31/201520963안녕하세요 WebService SoapExtensionImporter 에 대해서 질문드립니다. [3]
3675차가워12/30/201519802윈폼, 폼인폼 상황에서 하위컨트롤 포커스 문제 [1]
3673Sung...12/24/201521147UWP예외 발생 : 'System.Runtime.InteropServices.COMException'(mscorlib.ni.dll) 해결방법 [2]
3672Sung...12/23/201519447global::System.Diagnostics.Debugger.Break();가 노랗게 표시될시 [2]
3671이상준12/22/201524450한글 키보드 입력에 대해서 질문이 있습니다. [3]
... 46  [47]  48  49  50  51  52  53  54  55  56  57  58  59  60  ...