C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[62525] Windows7에서 어플의 쓰레드가 갯수가...
장성호 [nasilso] 1415 읽음    2010-09-28 11:26
최근 Windows7을 쓰고 있는데요   아직도 여러가지로 많이 어색하네요..

어제 코딩하다가 발견한것인데..

@Windows7에서는 단일Thread어플인데도 thread가 2개가 됨

Delphi나 C++Builder에서 Default VCL Application을 열어서
그냥 run했는데...작업관리자(taskmgr)에서 보니 thread갯수가 두개네요

코딩이 한줄도 없이 그냥 빈폼 하나뿐인데..


똑같은 실행파일을 xp에서 실행했을때는 thread갯수가  1개인데..
왜 windows7에서는 2개일까요?

그러고 보니 windows7에서
제가작성한 어플말고도  thread갯수가 1개인 process가 거의 없네요

---------------------------------------------------------------------

@CreateWindow호출시 Thread가 늘어남


나름 디버깅해보니..

process시작하자마다 process의 thread가  두개가 되는것이 아니라..
vcl초기화중에 Application객체가 생성될때..
좀더 구체적으로 Application->Handle이 생성될때

즉 현재 process에서 맨처음 CreateWindow가 호출되어 window가 생성될때 thread가 1개에서 2개로 늘어납니다.

즉 window어플인경우에 추가로thread가 하나 늘어납니다.

console 프로그램인경우에는 CreateWindow를 호출하지 않는 이상..
추가로 thread가 늘어나지는 않구요..

추신
빈폼을 이리저리 움직이다고 보니..
어느순간 thread-count가 2개에서 5개로 늘어나네요.
aero 기능을 쓰고있습니다만.. 그것과 관련된것인지...

어느순간에 2~5개로 늘어나는지 종잡을수 없네요
thread프로그램을 전혀 하지 않았는데.. thread가 무려 5개나 되다니..

여기서 OpenDialog등 CommonDialog까지 사용하면 무려 쓰레드가 14개가 되어버리네요..

쩝쩝..

--------------------------------------------------------------------
왜그럴까요?

제 pc를 누가 감시하고 있을까요?

system에 대해 잘 모르니 어플개발하면서도 삽질할때가 참 많은것 같습니다.

누가 좀 속시원하게 알려주세요

그럼..

+ -

관련 글 리스트
62525 Windows7에서 어플의 쓰레드가 갯수가... 장성호 1415 2010/09/28
62527     VCL로 만들면 윈98에서도 스레드 2개 되던데요;;;; 아제나 797 2010/09/28
62529         Re:VCL로 만들면 윈98에서도 스레드 2개 되던데요;;;; Lyn 788 2010/09/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.