|
최근 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에 대해 잘 모르니 어플개발하면서도 삽질할때가 참 많은것 같습니다.
누가 좀 속시원하게 알려주세요
그럼..
|