2011-04-28 1 views
1

asp.net 응용 프로그램 (System.Threading.Thread) 내에 관리되는 스레드를 만듭니다. 각 스레드는 데이터베이스에 행을 작성하고 작업이 완료되면 삭제합니다 (~ 3-5 분).W3WP에서 내 관리되는 스레드는 어디에 있습니까

w3wp의 스레드 수를 task manager 개의 Windows에서 보면 스레드 수가 예상보다 적습니다. 예를 들어 데이터베이스에 따라 100 개의 작업이 실행중인 경우 w3wp에 50 개의 스레드가 있습니다. 그것은 매우 변동적이고 가끔은 일대일입니다.

thread counttask manager은 (는) 관리 된 스레드 수입니다. 그렇다면 내 스레드는 어디에 있습니까?

+0

는 어떻게 관리되는 스레드를 만드는? –

+0

@Hero :'System.Threading.Thread thread = new System.Threading.Thread()' – Xaqron

+0

관리되는 스레드의 수가 메트릭으로 그다지 의미가 없다; 대부분의 쓰레드는 자고있을 때 오버 헤드가 거의 없습니다. 왜 알고 싶니? –

답변

2

관리되지 않는 호스트가 관리되는 스레드와 관리되지 않는 스레드 간의 관계를 제어 할 수 있기 때문에 운영 체제 [스레드]는 관리되는 스레드와 고정 된 관계가 없습니다. 특히 정교한 호스트는 파이버 API를 사용하여 동일한 운영 체제 스레드에 대해 많은 관리되는 스레드를 예약하거나 다른 운영 체제 스레드간에 관리되는 스레드를 이동할 수 있습니다.

+0

어떻게하면 w3wp 내부 관리 쓰레드의 실제 카운트를 가질 수 있을까? – Xaqron

+0

정말 그렇게 할 방법이 없습니다. W3WP는 관리 코드를 실행하는 관리되지 않는 프로세스이므로 관리되지 않는 관점에서만 검사 할 수 있습니다. –