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)
5631김기헌3/24/202213141WPF 컨트롤의 그래픽 처리관련 질문드립니다 [2]파일 다운로드1
5630장성욱3/24/202213167로깅관련 질문입니다. [2]
5629감사합니...3/23/202213330함수에서 예외가 발생하면 try ~ catch처리기를 찾을 때 까지 상위 함수로 계속 올라가나요? [2]
5628홍길동3/23/202215011질문드립니다. [2]파일 다운로드1
5626연준혁3/21/202214125안녕하세요. [3]
5625jaew...3/18/202213798c# 8.0 도서를 구입한 사람입니다. [1]
5624초보자3/17/202213260람다 캡처 관련 문의 [2]
5623한예지 donator3/15/202212317인터프리터 원리가 궁금합니다. [4]
5622김민아3/8/202212990const와 readonly의 명확한 차이가 이게 맞나요? [2]
5621장성욱3/8/202213112c# 로그 관련 질문 [1]
5620김민아3/7/202212323안녕하세요 비관리 객체를 반환하는 메소드 호출 시 궁금한 점이 있어서 질문드립니다 [2]
5619팡팡이3/3/202214361RSA 문의드립니다. [3]
5618김기헌3/2/202212215안녕하세요 생성자 옆에 this 키워드를 붙여 생성자를 여러 개 호출 시 질문드립니다 [2]
5617Edun2/25/202213160ArgumentOutOrRangeException에러 발생 [2]파일 다운로드1
5616csha...2/24/202212387readonly struct로 선언된 구조체를 특정 클래스에서 멤버변수로 가지는 경우 [1]
5615장성욱2/22/202216285SetThreadAffinityMask를 이용한 쓰레드 지정하는 방법에 대해 궁금합니다. [4]
5614민우2/22/202216057SSL 통신 문의 [6]
5613김인태2/22/202213925서버와 PC 간의 어플리케이션 성능 차이 [1]
5612팬입니다2/20/202212191Kastrel 서버 관련 [1]
5611차가워2/19/202212698stopWatch 늘어짐 문의 [3]
5610차가워2/18/202212672Stopwatch 늘어짐 문제 [1]
5609cs린이2/15/202212128c# 함수의 호출 방식에 대해 궁금합니다! [2]
5608지호2/10/202213192시작하세요 C# 8.0 중 제네릭타입의 IEnumerable [3]파일 다운로드1
5607이로운2/10/202211665안녕하세요. 궁금한게 있어서 질문드립니다. [1]
5605강성봉2/10/202212765TCP PSH flag 패킷 수신 에러 [1]
5604LW2/9/202213560VISUAL STUDIO 2019 ==> 2020 설치시 오류가 생겨서 문의드립니다. [3]
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...