멀티 스레드 Windows 서비스 용 스레딩 라이브러리 [폐쇄
-
19-09-2019 - |
문제
Windows 서비스에서 사용할 수있는 C#에서 좋은 라이브러리를 찾고 있으며 필요한 모든 멀티 스레딩 기능을 처리합니다.
서비스는 X 분마다 실행되고, 데이터베이스를 호출 할 수 있는지 확인하고, 각각에 대해 스레드를 생성하여 실행합니다.
각 스레드는 예외, 로깅 등을 처리해야합니다.
제안이 있습니까?
해결책
이 프로젝트를 고려하십시오http://www.codeplex.com/smartthreadpool
프로젝트 설명
스마트 스레드 풀은 C#로 작성된 스레드 풀입니다. .NET 내장 스레드 풀보다 훨씬 더 발전합니다. 다음은 스레드 풀 기능 목록입니다.
- 스레드 수는 풀의 스레드의 워크로드에 따라 동적으로 변경됩니다.
- 작업 항목은 값을 반환 할 수 있습니다.
- 작업 항목을 취소 할 수 있습니다.
- 발신자 스레드의 컨텍스트는 작업 항목이 실행될 때 사용됩니다 (제한).
- 최소 Win32 이벤트 핸들 수를 사용하므로 응용 프로그램의 핸들 수는 폭발하지 않습니다.
- 발신자는 여러 또는 모든 작업 항목이 완료되기를 기다릴 수 있습니다.
- 작업 항목은 사후 콜백을 가질 수 있으며 작업 항목이 완료 되 자마자 호출됩니다.
- 작업 항목과 함께 제공되는 상태 객체는 자동으로 배치 될 수 있습니다.
- 작업 항목 예외는 발신자에게 다시 전송됩니다.
- 작업 항목이 우선 순위가 있습니다.
- 작업 항목 그룹.
- 발신자는 스레드 풀 및 작업 항목 그룹의 시작을 중단 할 수 있습니다.
- 스레드가 우선 순위가 있습니다.
- 싱글 스레드 아파트가있는 COM 객체를 실행할 수 있습니다.
- 조치 및 기능 대의원 지원.
- Windowsce 지원 (제한)
- Maxthreads와 Minthreads는 런 타임에 변경할 수 있습니다.
- 취소 동작은 불순합니다.
다른 팁
이것은 뺨에 약간의 혀이지만 .NET 프레임 워크는 어떻습니까? 그만큼 System.Threading
네임 스페이스에는 필요한 모든 것이 있습니다.
RX 프레임 워크에서 .NET 4 또는 백 포트를 사용할 수 있다면 작업 병렬 라이브러리가 약간 더 쉽게 만들어 질 수 있지만, 그 없이도 표준 프레임 워크에는 필요한 모든 것이 있습니다.
멀티 스레딩 지원이있는 스케줄링 라이브러리가 필요한 경우 이전에 사용했습니다 : Quartz.net
제휴하지 않습니다 StackOverflow