Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기

원칙적으로 여전히 Join은 정상적으로 동작하는 것이 맞습니다.

문제는 funcWriteList에서 UI Thread에 참여하기 위해 BeginInvoke를 하신 점에 있습니다. 한번 순서를 따라가 볼까요?

1. btnExecuteShowList_T_Click 메서드
  2. funcExecuteShowList_Start 메서드 호출 ("시작합니다." 출력)
  3. Thread.Start( this.funcGetDirectoryList ); 스레드 시작
  4. Thread.Join(); 스레드 대기
    5. this.funcGetDirectoryList 스레드 동작
    6. funcGetDirectoryList 내부에서 BeginInvoke "비동기" 출력 함수 호출 (UI 스레드에서 실행되는.)
    7. 스레드 완료
  8. Join으로 대기하던 UI 스레드 구동 시작
  9. funcExecuteShowList_End 메서드 호출
  9. "6."번 단계에서 BeginInvoke로 대기하고 있던 delegate 메서드 호출. 따라서 이 시점에서 "디렉터리 경로가 존재하지 않습니다" 출력.

만약, 원하는 결과를 얻고 싶다면, 6번 단계에서 "BeginInvoke"가 아닌 "Invoke" 함수를 호출하시면 되는데, 이것이 여의치 않은 것이, UI 스레드를 Thread.Join으로 묶고 있기 때문에 이런 경우에는 무한 대기 상태에 빠지게 됩니다.

이렇게 스레드에서 출력하고 싶은 메시지가 있는 경우에는 Thread.Join으로 대기하고 있으면 안됩니다.








[최초 등록일: ]
[최종 수정일: 6/25/2021]


비밀번호

댓글 작성자
 



2008-03-06 04시13분
[김재영] 동작 flow 까지!!
답글 작성과는 다른 내용으로 죄송합니다만.
아예 계속 동작순서 모르고 뛰어들기보다
Thread를 처음부터 다시 봐야겠습니다. ^^;;

바쁘신중에도 시간내어 답글 작성해주신 것 감사합니다. ^^
[guest]

1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...
NoWriterDateCnt.TitleFile(s)
5621장성욱3/8/20224666c# 로그 관련 질문 [1]
5620김민아3/7/20224684안녕하세요 비관리 객체를 반환하는 메소드 호출 시 궁금한 점이 있어서 질문드립니다 [2]
5619팡팡이3/3/20225958RSA 문의드립니다. [3]
5618김기헌3/2/20224556안녕하세요 생성자 옆에 this 키워드를 붙여 생성자를 여러 개 호출 시 질문드립니다 [2]
5617Edun2/25/20224699ArgumentOutOrRangeException에러 발생 [2]파일 다운로드1
5616csha...2/24/20224593readonly struct로 선언된 구조체를 특정 클래스에서 멤버변수로 가지는 경우 [1]
5615장성욱2/22/20226772SetThreadAffinityMask를 이용한 쓰레드 지정하는 방법에 대해 궁금합니다. [4]
5614민우2/22/20226109SSL 통신 문의 [6]
5613김인태2/22/20224645서버와 PC 간의 어플리케이션 성능 차이 [1]
5612팬입니다2/20/20224460Kastrel 서버 관련 [1]
5611차가워2/19/20224690stopWatch 늘어짐 문의 [3]
5610차가워2/18/20224578Stopwatch 늘어짐 문제 [1]
5609cs린이2/15/20224894c# 함수의 호출 방식에 대해 궁금합니다! [2]
5608지호2/10/20225398시작하세요 C# 8.0 중 제네릭타입의 IEnumerable [3]파일 다운로드1
5607이로운2/10/20224679안녕하세요. 궁금한게 있어서 질문드립니다. [1]
5605강성봉2/10/20224652TCP PSH flag 패킷 수신 에러 [1]
5604LW2/9/20224792VISUAL STUDIO 2019 ==> 2020 설치시 오류가 생겨서 문의드립니다. [3]
5603김진명2/9/20225996C# 10.0 출간은 언제쯤 계획하고 계신가요? [1]
5602신갑영2/8/20224896윈폼에 대해서 질문 드립니다. [1]
5601김인태2/4/20225111setup project 관련 [7]
5600itkim2/3/20225913윈도우 서버 계정 패스워드 인증 문의 [5]
5599레드골드2/3/20226352c#으로 ms word 제어 가능할까요? [6]
5598jaew...2/2/20225167Dictionary는 참조형식인가요?? [1]
5597재원2/2/20225491c# 9.0에 대한 내용을 받을 수 있나요? [1]
5596kss1/26/20225250듀얼 모니터 환경에서 wpf 프로그램 크기 변경 [2]
5594mira...1/25/20224881안녕하세요 try~catch 와 SuspendLayout~ResumeLayout 간 호출 문의드립니다! [2]
1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...