2012-12-02 3 views
1

콘솔 응용 프로그램이 있고 스레드 풀을 사용하지만 스레드 풀이 작업을 실행하기 전에 응용 프로그램이 종료됩니다. 나는 Console.ReadLine()을 사용할 수 있다고 읽었지만 threadpool이 작업을 마친 직후 종료하고 싶습니다. 나는 C#에서 예제를 찾았지만 vb.net에 대해서도 뭔가를 원합니다. 또한 .net 3.5를 사용하므로 작업 병렬 라이브러리를 사용할 수 없습니다. 나의 현재 코드는 다음과 같습니다스레드가 완료되기 전에 콘솔이 종료됩니다 (멀티 스레드)

For i As Integer = 0 To addresses.Length - 1 
    Dim mydata_obj = New With {Key .address = addresses(i), .subject = messages.subject, .body = messages.body} 
    ThreadPool.QueueUserWorkItem(AddressOf doSomething, mydata_obj) 
Next 
+0

도움이 될 수 있습니다 : http://stackoverflow.com/questions/3426718/how-can-i-accomplish-threadpool-join –

답변

2

사용 WaitHandle.WaitAll도 사용하여 달성 될 수있다 대체 개체에 대한 대기 threadpool

을 사용 WaitHandle.WaitAll

자세한 내용은

전체 작업 때까지 기다려야 threadpool. 어떤 상황에서는 객체를 기다리는 전용 스레드가 필요 없기 때문에이 방법이 더 좋습니다.

ThreadPool 클래스 작업을 실행하고, 작업 항목을 게시하고, 비동기 I/O를 처리하고, 다른 스레드를 대신하여 대기하고, 타이머를 처리하는 데 사용할 수있는 스레드 풀을 제공합니다.

+0

감사, 무슨 waitAll 메서드는 인수로 걸립니까? 내가 이것을 시도하고 내가 컴파일 오류를 제공하기 때문에 ... – user1005633

+0

@ user1005633 : 좋아, 대답 –

+0

에서 링크를 제공 확인, 그것은 작동 ... – user1005633

관련 문제