몇 분마다 비동기 적으로 작업을 실행하는 Windows 서비스가 있습니다. 때로는 Windows 서비스가 실행되고 이전 작업이 완료되지 않았습니다. 스레딩을 사용하면 새 작업을 대기열에 두는 방법이 있습니다. 첫 번째 작업이 끝나면 실행을 시작하지 않습니까?C에서 스레드의 대기 실행
답변
사용자 고유의 생산자/작업 큐를 만들 수 있습니다. 사실상 단일 스레드 스레드 풀입니다.
BlockingCollection<T>
을 사용하면 .NET 4에서 쉽게 수행 할 수 있습니다. 그 전에는 조금이 더 까다 롭지 만 도이 아닙니다.
불행히도 3.5를 사용하고 있습니까 3.5에 대한 예제 링크가 있습니까? 감사합니다 – ryudice
@ryudice : 여기에 몇 가지 샘플 코드가 있습니다 : http://stackoverflow.com/questions/530211/creating-a-blocking-queuet-in-net/530228#530228 –
@ 존 : 3.5, OP 사용 작업해야합니다 Parallel Lib,'cancelToken.IsCancellationRequested'를 확인하고 작업을 대기열에 저장
주 제어 서비스에서 대기열을 구현해야합니다. 스레드 완료 및/또는 주기적으로 대기열을 확인하고 다음 작업을 시작할 수 있습니다.
- 1. C에서 파일 생성 대기 #
- 2. C에서 이벤트 수신 대기
- 3. 소비자 스레드의 주 스레드에서 데이터 대기 대기 구성 방법
- 4. 자바 스크립트에서 실행 대기
- 5. 주 스레드가 대기 중일 때 동시 스레드의 작업이 실행되지 않습니다.
- 6. 스레드의 실행 시간 결정 및 다른 스레드의 IO 액세스
- 7. C에서 다중 스레드의 정적 상수 변수에 액세스
- 8. 입력 대기 중 메서드 실행
- 9. 플렉스 - 대기 애플리케이션을 백그라운드로 실행
- 10. C에서 SSIS 패키지 실행 #
- 11. C에서 스크립트 실행
- 12. 자바 스레드의 대기 시간을 제어 할 수 있습니까?
- 13. 대기중인 스레드의 실행 순서가 뮤텍스에 의해 차단되었습니다.
- 14. 작업자 스레드의 주 스레드에서 코드 실행
- 15. 스레드의 실행 시간 가져 오기 java
- 16. 스레드의 신원 :
- 17. 프로세스 실행 및 대기 안 함
- 18. C# 스레드 동기화 (실행 대기 중)
- 19. 대기 후 스레드가 실행 가능 상태가 아닌 차단 상태에 있어야합니다?
- 20. C에서 실행 시간을 제어하는 방법
- 21. 메모리 C에서 프로세스를 실행/C++
- 22. C에서 전체 루아 스크립트 실행
- 23. Objective C에서 AJAX 코드 실행
- 24. C에서 다른 스레드의 Invoke를 사용하여 클래스 멤버에 액세스
- 25. 다른 스레드의 새로운 형식
- 26. 부모 대기 스레드 대기
- 27. 실행 가능하지만 실행 중이 아닌 스레드와 달리 실행 가능한 스레드의 전체 목록을 사용하지 않는 이유는 무엇입니까?
- 28. 스레드의 현재 활동보기
- 29. 스레드의 최대 실행 시간을 처리하는 가장 좋은 방법 (Java)
- 30. 스레드의 동시성
마치 그들이 완료 할 수있는 것보다 더 빨리 대기중인 경우 작업의 백 로그가 무한히 증가하지 않도록주의해야합니다. 대기열의 최대 숫자가 어딘가에 있는지 확인하십시오 (예를 들어 하나만!). 또는 쉬운 방법을 사용하여 이전 작업이있는 경우 새로운 작업 시작을 방지하십시오. –