Microsoft MVP성태의 닷넷 이야기
출력창에 '스레드가 종료되었습니다' 문구 문의 [링크 복사], [링크+제목 복사],
조회: 22375
글쓴 사람
이상준 (greatz613 at gmail.com)
홈페이지
첨부 파일

안녕하세요.

Task 궁금증이 생겨서 테스트 해봤는데 결과가 예상대로 나오지 않아서 문의드립니다.

제가 테스트한 예제 프로그램을 첨부합니다. WinForm이고 .NET Framework 4.8로 작성되었습니다.

버튼을 누르면 코드에 보시는 바와같이 Task 1개를 실행합니다.

제가 아는 Task는...

프로세스 당 단 1개의 ThreadPool이 생성되며, Task를 호출하게되면 ThreadPool에서 Thread를 할당받아 사용한 뒤 작업이 끝나면 ThreadPool에 반환되어,

다음 Task 작업 시 재사용한다고 알고 있습니다.

예제프로그램에서 버튼을 눌러 Task를 실행한 뒤, 작업이 끝나면

Visual Studio의 출력창에 조금 뒤...'스레드가 종료되었습니다' 문구가 여러 번 발생됩니다.

이 출력문구가 출력되는 횟수가 버튼을 누를때마다 다릅니다.

'스레드가 종료되었습니다'문구는 실제로 디버깅 중인 프로세스의 Thread가 종료되면 나오는 문구인가요?

만약 그렇다면 제가 1개를 사용하면 1개만 종료문구가 출력되어야하는데 왜 많이 출력될까요?








[최초 등록일: ]
[최종 수정일: 1/15/2020]


비밀번호

댓글 작성자
 



2020-01-15 08시07분
'스레드가 종료되었습니다' 문구는 실제로 스레드 종료를 알리는 것이 맞습니다. 1개의 스레드를 사용자가 생성했다고는 하지만 ThreadPool 제작자 입장에서는 그 1개의 생성을 미래의 또 다른 요청을 생각해 몇 개의 스레드를 더 만들 수도 있을 것입니다. 다음의 글도 함께 읽어보시다면 도움이 되실 것입니다.

ThreadPool.QueueUserWorkItem의 실행 지연
; http://www.sysnet.pe.kr/2/0/1455

.NET 응용 프로그램에 기본 생성되는 스레드들에 대한 탐구
; http://www.sysnet.pe.kr/2/0/1247
정성태
2020-01-16 11시04분
[이상준] 아...[ThreadPool.QueueUserWorkItem의 실행 지연] 이 글은 엄청 흥미있게 읽었습니다. ThreadPool에 대해서 더 알아가는 글이라 뿌듯합니다.
하지만 [.NET 응용 프로그램에 기본 생성되는 스레드들에 대한 탐구] 이 글을 보기엔 아직 GC 관련한 기본지식이 깔리지 않아서 좀 이해하기 어렵네요...
좋은 글 링크 감사드리고, 답변 역시 정말 감사드립니다!
[guest]

... 31  32  [33]  34  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
5074진우10/28/201814180C# 생성과 동시에 초기화 하는 코드 문의 [2]
5073돌고래10/27/201814200c# 공부 방향 질문 드립니다. [3]
5072엔벌잉10/24/201814355C# textbox, button질문입니다! [4]파일 다운로드1
5071엔벌잉10/23/201815338C#윈도우폼 질문입니다!! [2]
5070진우10/17/201815264Visual Studio 서비스팩과 업데이트 차이 문의 [2]
5069감자10/12/201816117빌드 구성을 재설정하는 방법이 있을까요? [1]파일 다운로드1
5068누오10/10/201814762ASP Core 2.0 에서 dll안에 있는 뷰 읽어들이는 방법? [1]
5067김정민10/5/201814969다른 윈도우가 깨지는 현상을 막을 수 있을까요 [3]
5066로니브10/4/201815719ASP.NET MVC에서 View 파일 숨기는법? 보안처리 하는법? 관련 질문.. [1]
5065키모10/1/201817194문자 질문입니다. [3]
5064로니브10/1/201816558클래스 라이브러리에서 .cshtml파일을 추가하는 방법은 없나요? [3]
5063진우9/28/201815407ADO.net 과 Entity Framework 차이 문의 [2]
5062테스트9/27/201815886C# import file 의 구조체 배열 선언 및 호출에 대해 문의. [3]
5061안녕하세요9/13/201816142c# 프로그래밍 관련 문의 [1]
5060임민재9/8/201815188c# install 파일 생성 시 문제가 발생하였습니다 [1]파일 다운로드1
50599/7/201814665Winform TextBox 포커스 유지하는 방법 질문 [파일첨부] [1]파일 다운로드1
50589/5/201818918Winform TextBox 포커스 유지하는 방법 질문 [3]
5056박종윤8/30/201817639c# dll을 C++에서 사용 시 event 호출 [4]파일 다운로드1
5055초보자8/29/201816697asp.net 에서 다른 서버의 iis를 stop하는 batch file을 실행시키는데 동작하지 않습니다. [5]
5054사도신8/29/201815156[wpf] textbox insert overite 모드시에 [4]파일 다운로드1
5053엿장수8/26/201814231directshow filter 에서의 IMediaSample 의 시간에대한질문입니다 [1]
5052오명현8/26/201814801Tcp소켓 실습 Exeption 도와주세요! [4]파일 다운로드1
5049오명현8/23/201814307책 477페이지 내용 중 이해가 안가는 부분이 있어 질문드립니다. [1]
5048오명현8/23/201813973포트 관련 질문 하나더 있습니다. [1]
5047오명현8/22/201814753포트가 없을 경우를 가정한 내용에 대해 질문이 있습니다. 책468p. [1]
5046엿장수8/22/201814657다이렉트쇼 필터 추가하는데 [2]
... 31  32  [33]  34  35  36  37  38  39  40  41  42  43  44  45  ...