저는 BackgroundWorker에 의해 비동기로 작업되는 메서드가 있습니다. 이 메서드 내에서 일부 코드는 1000 밀리 초 간격으로 무한 루프됩니다.C# BackgroundWorker 질문
이 코드 내에서 일부 값에 따라 이벤트가 전달됩니다. 지금까지 내가 이해 한대로이 이벤트는 발생 된 코드와 동일한 스레드에서 실행됩니다.
하지만이 이벤트는 BackgroundWorker를 보유하고있는 개체와 동일한 스레드에서 실행됩니다. 어떻게해야합니까?
@Thomas : 스레드 풀/백그라운드 작업자를 사용하는 대신 장기간 실행 (또는 무한 경우) 프로세스 용으로 별도의 스레드를 시작하는 것이 가장 좋습니다. Adam이 제안했듯이 Timer가 더 적합 할 수 있습니다. –
개체 스레드가 계속 작동하게하려면 실제로는 불가능합니다. 할 수있는 일은 AutoResetEvent 또는 ManualResetEvent를 사용하여 주 스레드가 다시 작업을 시작하도록하거나 지속적으로 휘발성 bool을 검사하여 백그라운드 작업자가 작업을 완료했는지 확인하는 것입니다. – Will