2011-01-13 4 views
3

asp.net 응용 프로그램에 일반 스레드를 만듭니다. 스레드가 완료되면 어떻게해야합니까? 그것을 남겨 두십시오 (다시 스레드 풀로 돌아갈 것입니다).스레드가 완료되면 어떻게해야합니까? 그것을 떠나거나 그것을 중단합니까?

Thread thread = new Thread(new ThreadStart(work)); 
+2

그런 방식으로 스레드를 생성하는 것은 스레드 풀을 사용하지 * 않습니다 *. – Ani

+0

그렇다면이 스레드를 컨텍스트를 종료 한 상태로두면 어떻게됩니까? – Xaqron

+0

Ani가 위의 코드를 지적하여 스레드 풀 스레드를 제공하지 않습니다. BackgroudWorker 또는 .NET 4에있는 경우 Task 클래스를 살펴보십시오. –

답변

3

두십시오. 무의미한 예외를 만드는 데는 아무런 의미가 없습니다. C#을 .NET의 스레드가 다른 모든 처리

[STAThread] 
    public static void Main(string[] args) 
    { 
     foreach(var fileNamePath in DirectoryFiles) 
     { 
     ThreadPool.QueueUserWorkItem(ThreadPoolCallback, fileNamePath); 
     } 
    } 

    public void ThreadPoolCallback(object threadContext) 
    { 
     //do something 
    } 

에서

1

사용하여 스레드 풀.

2

IDisposable 인터페이스가 존재 함을 상기하십시오. 특히 일부 공유 자원을 해제해야하는 시나리오의 경우입니다. (뿐만 아니라 다른 상황에 적용 물론 된,하지만 원래 의미 된 상황입니다.)

지금 관리 Thread 클래스 하지IDisposable를 구현한다는 것을 고려하면 (짐작 정확하게) GC에 의한 정상적인 처리 이상의 특정 정리를 요구하지 않는다.