2012-09-18 5 views
0

스레드를 사용하여 작업을 완료하는 응용 프로그램을 개발 한 및 닫는 프로세스 중간에 실행중인 응용 프로그램을 닫고 싶지만 스레드가 백그라운드에서 실행되고 싶습니다.스레드 수를 알고

이제 내 응용 프로그램이 만들어지는 활성 스레드를 표시하려고합니다. 하지만 어려울 때, 내가 응용 프로그램을 실행하지 않고 14-19 스레드와 같은 작업 관리자에 표시됩니다 스레드에서 응용 프로그램을 시작합니다.

내 응용 프로그램이 아닌 시스템에서 만든 스레드 만 표시하도록 할 수 있습니까?

+0

가능한 [활성 스레드 수를 찾는 방법은?] (http://stackoverflow.com/questions/2744295/how-to-find-the-active-thread-count) –

+0

스레드 또는 스레드 수를 계산하려면 ? 그냥 카운트하기가 쉽기 때문에 묻기. 그러나 닫는 응용 프로그램에서 모든 스레드를 닫는 것과 같은 것을 얻으려면 스레드 수를 알려주는 더 나은 솔루션이 있습니다. 뭘 얻고 싶니? – Sami

+0

문장 "이제 내 응용 프로그램이 생성 된 활성 스레드를 보여주고 싶지만 응용 프로그램을 실행하지 않고 스레드를 14-19 스레드와 같이 작업 관리자에 표시하면 응용 프로그램을 시작할 때 어려움이 있습니다." 나를. – Sami

답변

4

Process.Threads을 사용하지 않으시겠습니까? 다음은 프로세스에서 실행중인 모든 스레드를 제공해야합니다.

var myProcess = Process.GetCurrentProcess(); 
var myThreads = myProcess.Threads; 
+0

내 스레드 플러스 시스템 스레드를 보여줍니다 – Mukesh

0

이 한 줄로 표시 될 수 있습니다.

System.Diagnostics.Process.GetCurrentProcess().Threads.Count 
+0

나는 이것을 시도했지만 내 응용 프로그램에 의해 만들어진 실제 스레드를 얻을 수 없습니다 – Mukesh

+0

하지만 당신의 응용 프로그램을 만들었습니까? 현재 프로세스가 시작한 현재 스레드를 표시합니다. 다른 것을 시작하는 * 부모 * 스레드를 포함합니다. –

0

이 문제는 약간 다르게 적용됩니다. 내가 시작한 스레드의 양을 추적 할 것입니다.

나는 당신이 1 개의 UI 스레드를 가지고 있어야하고, 새로운 스레드를 시작할 때 x 개의 새로운 스레드가 있어야한다고 생각한다. 시작한 스레드의 총 수를 원하면 응용 프로그램의 어딘가에서 시작하는 각 스레드로 정적 int를 증가시키고 중지되는 각 스레드에서 해당 int를 감소 시키십시오.

두 스레드가 동시에 값을 변경하지 않도록하려면 정적 int의 증가 및 감소 코드를 잠글 필요가 있습니다.

.Net에는 이렇게하는 라이브러리가 상당히 있습니다. 시간이 있다면 this article을 읽으십시오. 올바른 방향으로 밀어 줄 수 있습니다.

관련 문제