2013-06-18 3 views
-1

일단 관련 작업이 완료되면 BackgroundWorker Thread를 어떻게 종료시킬 수 있는지 알고 싶습니다. Kill 또는 Abort 또는 도움이 될만한 다른 방법이 있습니까?BackgroundWorker 스레드를 다른 스레드처럼 죽일 수 있습니까?

+0

언어/프레임 워크? .NET의'BackgroundWorker' 클래스를 알고 있지만, 당신이 말하는 것인지를 알 수있는 방법이 없습니다. 질문을 수정하고 적절한 언어/프레임 워크/라이브러리 태그를 추가하십시오. –

+1

BackgroundWorker 클래스에 대해 이야기하고 있습니다. 우리는 TimeTaking 작업을 비동기로 만들 수 있습니다. – Vishal

+0

.Net 인 경우 CancelAsync()가 사용되지만 그것이 일을하고있을 때를위한 것입니다. 당신은 그것을 죽일 수 없으며 그것을 취소 할 수 없습니다. –

답변

2

작업이 이미 완료된 후 스레드를 닫는 것에 대해 걱정하십니까?

스레드가 가비지 수집에서 정리됩니다. Dispose()를 호출하면 더 빨리 정리되고 '우수 사례'가됩니다.

BackgroundWorker 작업은 WinForms 또는 ThreadPool.QueueUserWorkItem (...)을 사용하여 스레드의 수명주기를 자동으로 처리합니다. 당신은 일반적으로 BackgroundWorker가 실행되고있는 스레드를 죽일 수 없어, How to "kill" background worker completely?

1

번호 :

이 관련 질문을 참조하십시오. 해당 스레드는 ThreadPool의 일부입니다. ThreadPool은 스레드를 관리하고 더 많은 스레드를 할당하거나 제거해야 할시기를 결정합니다. 스레드를 죽이는 것에 대해 걱정할 필요가 없습니다.

문제가되지 않습니다. 스레드가 유휴 상태 일 때 스레드가 CPU 시간을 사용하는 것과는 다릅니다. 점유하고있는 소량의 시스템 자원은 발견되지 않습니다.

관련 문제