|
Dreamine.Threading 1.0.1
이 패키지는 .NET ThreadPool이나 Task Parallel Library를 대체하려는 목적이 아닙니다.
|


Public 멤버 함수 | |
| DreamineThread (DreamineThreadOptions options, DreamineThreadCoreAssignment coreAssignment, IThreadCyclePolicy cyclePolicy, IThreadAffinityService? affinityService=null, ITimerResolutionService? timerResolutionService=null, IDreamineLogger? logger=null) | |
| void | AddJob (IDreamineThreadJob job) |
| void | Start () |
| void | Pause () |
| void | Resume () |
| void | Stop () |
| async ValueTask | StopAsync () |
| DreamineThreadInfo | GetInfo () |
| void | Dispose () |
속성 | |
| string | Name [get] |
| DreamineThreadOptions | Options [get] |
| DreamineThreadCoreAssignment | CoreAssignment [get] |
| DreamineThreadStatus | Status [get, private set] |
| int | JobCount [get] |
Private 멤버 함수 | |
| void | Run (CancellationToken cancellationToken) |
| void | ExecuteDueJobs (CancellationToken cancellationToken) |
| void | ThrowIfDisposed () |
정적 Private 멤버 함수 | |
| static ThreadPriority | MapPriority (DreamineThreadPriority priority) |
Private 속성 | |
| readonly object | _syncRoot = new() |
| readonly List< IDreamineThreadJob > | _jobs = new() |
| readonly IThreadCyclePolicy | _cyclePolicy |
| readonly? IThreadAffinityService | _affinityService |
| readonly? ITimerResolutionService | _timerResolutionService |
| readonly? IDreamineLogger | _logger |
| readonly ManualResetEventSlim | _pauseEvent = new(true) |
| Thread? | _thread |
| CancellationTokenSource? | _cancellationTokenSource |
| long | _cycleCount |
| DateTimeOffset? | _startedAt |
| DateTimeOffset? | _stoppedAt |
| string? | _lastErrorMessage |
| bool | _disposed |
| volatile DreamineThreadStatus | _status = DreamineThreadStatus.Created |
기본 Dreamine 작업자 스레드 구현을 제공합니다.
DreamineThread.cs 파일의 15 번째 라인에서 정의되었습니다.
|
inline |
지정한 옵션, 코어 할당 및 실행 서비스를 사용해 T:Dreamine.Threading.Services.DreamineThread 클래스의 새 인스턴스를 초기화합니다.
| options | 정규화할 작업자 스레드 옵션입니다. |
| coreAssignment | 적용할 CPU 코어 할당입니다. |
| cyclePolicy | 각 실행 주기 뒤의 지연을 결정할 정책입니다. |
| affinityService | 선택적 CPU 선호도 서비스입니다. |
| timerResolutionService | 선택적 타이머 해상도 서비스입니다. |
| logger | 선택적 진단 로거입니다. |
| ArgumentNullException | options , coreAssignment 또는 cyclePolicy 가 null일 때 발생합니다. |
DreamineThread.cs 파일의 282 번째 라인에서 정의되었습니다.
다음을 참조함 : _affinityService, _cyclePolicy, _logger, _timerResolutionService, CoreAssignment, Name, Dreamine.Threading.Models.DreamineThreadOptions.Normalize(), Options.
다음에 의해서 참조됨 : ThrowIfDisposed().


|
inline |
실행 주기에 참여할 작업을 스레드 안전하게 추가합니다.
| job | 추가할 스레드 작업입니다. |
| ArgumentNullException | job 이 null일 때 발생합니다. |
| ObjectDisposedException | 작업자 스레드가 이미 정리된 경우 발생합니다. |
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 335 번째 라인에서 정의되었습니다.
다음을 참조함 : _jobs, _syncRoot, ThrowIfDisposed().

|
inline |
작업자 스레드를 동기적으로 중지하고 대기 핸들을 정리합니다.
이 메서드는 중지의 join 대기 동안 호출 스레드를 차단할 수 있습니다.
DreamineThread.cs 파일의 609 번째 라인에서 정의되었습니다.
다음을 참조함 : _disposed, _pauseEvent, Status, StopAsync().

|
inlineprivate |
현재 시각에 실행 기한이 된 작업을 등록 순서대로 동기 실행합니다.
| cancellationToken | 각 작업 실행에 전달할 취소 토큰입니다. |
| OperationCanceledException | 실행 중인 작업이 취소를 보고하면 다시 전파됩니다. |
개별 작업의 비취소 예외는 기록한 뒤 다음 작업을 계속 실행합니다.
DreamineThread.cs 파일의 748 번째 라인에서 정의되었습니다.
다음을 참조함 : _jobs, _lastErrorMessage, _logger, _syncRoot.
다음에 의해서 참조됨 : Run().

|
inline |
현재 작업자 상태와 실행 통계를 불변 스냅샷으로 반환합니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 577 번째 라인에서 정의되었습니다.
다음을 참조함 : _cycleCount, _lastErrorMessage, _startedAt, _stoppedAt, CoreAssignment, JobCount, Name, Options, Status.
|
inlinestaticprivate |
Dreamine 우선순위를 시스템 ThreadPriority 값으로 매핑합니다.
| priority | 매핑할 Dreamine 스레드 우선순위입니다. |
DreamineThread.cs 파일의 809 번째 라인에서 정의되었습니다.
다음을 참조함 : Dreamine.Threading.Models.High, Dreamine.Threading.Models.Low.
다음에 의해서 참조됨 : Start().

|
inline |
실행 중인 작업자 스레드의 주기 진행을 일시 정지합니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 417 번째 라인에서 정의되었습니다.
다음을 참조함 : _logger, _pauseEvent, _syncRoot, Status.
|
inline |
일시 정지된 작업자 스레드의 주기 진행을 재개합니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 449 번째 라인에서 정의되었습니다.
다음을 참조함 : _logger, _pauseEvent, _syncRoot, Status.
|
inlineprivate |
작업자 스레드에서 타이머·선호도·작업 실행·주기 지연을 관리하는 주 루프를 실행합니다.
| cancellationToken | 주 루프와 일시 정지 대기를 중지하는 토큰입니다. |
비취소 예외는 내부에서 기록되어 상태가 DreamineThreadStatus.Faulted로 변경되며 호출자에게 전파되지 않습니다.
DreamineThread.cs 파일의 647 번째 라인에서 정의되었습니다.
다음을 참조함 : _affinityService, _cycleCount, _cyclePolicy, _lastErrorMessage, _logger, _pauseEvent, _timerResolutionService, CoreAssignment, ExecuteDueJobs(), JobCount, Name, Options, Status.
다음에 의해서 참조됨 : Start().


|
inline |
백그라운드 작업자 스레드를 생성하고 실행을 시작합니다.
| ObjectDisposedException | 작업자 스레드가 이미 정리된 경우 발생합니다. |
| ThreadStateException | 생성된 시스템 스레드를 시작할 수 없는 상태일 때 발생할 수 있습니다. |
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 370 번째 라인에서 정의되었습니다.
다음을 참조함 : _cancellationTokenSource, _lastErrorMessage, _logger, _pauseEvent, _startedAt, _stoppedAt, _syncRoot, _thread, MapPriority(), Name, Options, Run(), Status, ThrowIfDisposed().

|
inline |
작업자 스레드 중지를 요청하고 종료 대기를 동기적으로 차단합니다.
| InvalidOperationException | 비동기 중지 작업을 동기적으로 완료할 수 없을 때 발생할 수 있습니다. |
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 490 번째 라인에서 정의되었습니다.
다음을 참조함 : StopAsync().

|
inline |
취소를 요청하고 구성된 제한 시간 동안 작업자 스레드 종료를 비동기로 기다립니다.
제한 시간 내 종료 여부와 관계없이 내부 스레드 참조를 지우고 상태를 중지됨으로 갱신합니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 519 번째 라인에서 정의되었습니다.
다음을 참조함 : _cancellationTokenSource, _logger, _pauseEvent, _stoppedAt, _syncRoot, _thread, Options, Status.
다음에 의해서 참조됨 : Dispose(), Stop().

|
inlineprivate |
작업자 스레드가 아직 정리되지 않았는지 확인합니다.
| ObjectDisposedException | 작업자 스레드가 이미 정리된 경우 발생합니다. |
DreamineThread.cs 파일의 835 번째 라인에서 정의되었습니다.
다음을 참조함 : _disposed, DreamineThread().
다음에 의해서 참조됨 : AddJob(), Start().


|
private |
affinity Service 값을 보관합니다.
DreamineThread.cs 파일의 52 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), Run().
|
private |
cancellation Token Source 값을 보관합니다.
DreamineThread.cs 파일의 98 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Start(), StopAsync().
|
private |
|
private |
cycle Policy 값을 보관합니다.
DreamineThread.cs 파일의 43 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), Run().
|
private |
disposed 값을 보관합니다.
DreamineThread.cs 파일의 143 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), ThrowIfDisposed().
|
private |
|
private |
last Error Message 값을 보관합니다.
DreamineThread.cs 파일의 134 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ExecuteDueJobs(), GetInfo(), Run(), Start().
|
private |
logger 값을 보관합니다.
DreamineThread.cs 파일의 70 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), ExecuteDueJobs(), Pause(), Resume(), Run(), Start(), StopAsync().
|
private |
pause Event 값을 보관합니다.
DreamineThread.cs 파일의 79 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), Pause(), Resume(), Run(), Start(), StopAsync().
|
private |
|
private |
status 값을 보관합니다.
DreamineThread.cs 파일의 183 번째 라인에서 정의되었습니다.
|
private |
stopped At 값을 보관합니다.
DreamineThread.cs 파일의 125 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetInfo(), Start(), StopAsync().
|
private |
sync Root 값을 보관합니다.
DreamineThread.cs 파일의 25 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AddJob(), ExecuteDueJobs(), Pause(), Resume(), Start(), StopAsync().
|
private |
|
private |
timer Resolution Service 값을 보관합니다.
DreamineThread.cs 파일의 61 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), Run().
|
get |
작업자 스레드의 CPU 코어 할당을 가져옵니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), GetInfo(), Run().
|
get |
이 작업자에 할당된 작업 수를 스레드 안전하게 가져옵니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 207 번째 라인에서 정의되었습니다.
|
get |
정규화된 작업자 스레드 이름을 가져옵니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 153 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), GetInfo(), Run(), Start().
|
get |
정규화된 작업자 스레드 옵션을 가져옵니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 163 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThread(), GetInfo(), Run(), Start(), StopAsync().
|
getprivate set |
현재 작업자 스레드 수명 주기 상태를 가져옵니다.
Dreamine.Threading.Interfaces.IDreamineThread를 구현.
DreamineThread.cs 파일의 193 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), GetInfo(), Pause(), Resume(), Run(), Start(), StopAsync().