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


Public 멤버 함수 | |
| DreamineThreadManager (IThreadCoreAllocator coreAllocator, IThreadCyclePolicy cyclePolicy, IDreamineThreadScheduler scheduler, IThreadAffinityService? affinityService=null, ITimerResolutionService? timerResolutionService=null, IDreamineLogger? logger=null) | |
| IDreamineThreadJob | Register (DreamineThreadOptions options, Func< CancellationToken, ValueTask > action) |
| void | StartAll () |
| void | StopAll () |
| async ValueTask | StopAllAsync () |
| bool | Start (string threadName) |
| bool | Stop (string threadName) |
| async ValueTask< bool > | StopAsync (string threadName) |
| bool | Pause (string threadName) |
| bool | Resume (string threadName) |
| void | PauseAll () |
| void | ResumeAll () |
| bool | TryGetThread (string threadName, out IDreamineThread? thread) |
| IReadOnlyList< IDreamineThread > | GetThreads () |
| IReadOnlyList< DreamineThreadInfo > | GetThreadInfos () |
| void | Dispose () |
Private 멤버 함수 | |
| IDreamineThread? | RegisterOverflowJob (IDreamineThreadJob job) |
| void | ThrowIfDisposed () |
Private 속성 | |
| readonly object | _syncRoot = new() |
| readonly List< IDreamineThread > | _threads = new() |
| readonly IThreadCoreAllocator | _coreAllocator |
| readonly IThreadCyclePolicy | _cyclePolicy |
| readonly IDreamineThreadScheduler | _scheduler |
| readonly? IThreadAffinityService | _affinityService |
| readonly? ITimerResolutionService | _timerResolutionService |
| readonly? IDreamineLogger | _logger |
| bool | _disposed |
기본 Dreamine 작업자 스레드 관리자 구현을 제공합니다.
DreamineThreadManager.cs 파일의 15 번째 라인에서 정의되었습니다.
|
inline |
코어 할당, 주기 정책 및 스케줄링 서비스를 사용해 T:Dreamine.Threading.Services.DreamineThreadManager 클래스의 새 인스턴스를 초기화합니다.
| coreAllocator | 스레드의 CPU 코어를 할당하고 해제할 서비스입니다. |
| cyclePolicy | 작업자 실행 주기 지연 정책입니다. |
| scheduler | 오버플로 작업을 기존 작업자에 배치할 스케줄러입니다. |
| affinityService | 선택적 CPU 선호도 서비스입니다. |
| timerResolutionService | 선택적 타이머 해상도 서비스입니다. |
| logger | 선택적 진단 로거입니다. |
| ArgumentNullException | coreAllocator , cyclePolicy 또는 scheduler 가 null일 때 발생합니다. |
DreamineThreadManager.cs 파일의 163 번째 라인에서 정의되었습니다.
다음을 참조함 : _affinityService, _coreAllocator, _cyclePolicy, _logger, _scheduler, _timerResolutionService.
다음에 의해서 참조됨 : ThrowIfDisposed().

|
inline |
모든 작업자를 동기 중지·정리하고 코어 할당을 반환합니다.
모든 작업자의 join 대기가 완료될 때까지 호출 스레드를 차단할 수 있습니다.
DreamineThreadManager.cs 파일의 706 번째 라인에서 정의되었습니다.
다음을 참조함 : _coreAllocator, _disposed, _syncRoot, _threads, StopAll().

|
inline |
모든 등록된 작업자에서 상태 스냅샷을 생성합니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 680 번째 라인에서 정의되었습니다.
|
inline |
등록된 작업자 스레드의 스레드 안전한 배열 스냅샷을 가져옵니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 656 번째 라인에서 정의되었습니다.
다음을 참조함 : _syncRoot, _threads.
다음에 의해서 참조됨 : PauseAll(), ResumeAll(), StartAll(), StopAll(), StopAllAsync().

|
inline |
이름이 일치하는 작업자 스레드를 일시 정지합니다.
| threadName | 일시 정지할 작업자 이름입니다. |
true입니다.Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 512 번째 라인에서 정의되었습니다.
다음을 참조함 : TryGetThread().

|
inline |
등록된 모든 작업자 스레드를 일시 정지합니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 566 번째 라인에서 정의되었습니다.
다음을 참조함 : GetThreads().

|
inline |
옵션에 따라 전용 작업자 또는 기존 작업자의 오버플로 작업을 등록합니다.
| options | 정규화할 스레드·코어·주기 옵션입니다. |
| action | 등록할 비동기 작업 대리자입니다. |
| ArgumentNullException | options 또는 action 이 null일 때 발생합니다. |
| ObjectDisposedException | 관리자가 이미 정리된 경우 발생합니다. |
등록 실패 시 이미 얻은 코어 할당을 할당기에 반환합니다. 작업자 시작은 관리자 잠금 밖에서 수행됩니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 235 번째 라인에서 정의되었습니다.
다음을 참조함 : _affinityService, _coreAllocator, _cyclePolicy, _logger, _syncRoot, _threads, _timerResolutionService, Dreamine.Threading.Models.DreamineThreadOptions.Normalize(), RegisterOverflowJob(), Dreamine.Threading.Interfaces.IDreamineThread.Start(), ThrowIfDisposed().

|
inlineprivate |
오버플로 폴링 작업을 기존 작업자에 배치하거나 작업자가 없으면 대체 작업자를 생성합니다.
| job | 배치할 오버플로 폴링 작업입니다. |
null입니다.오버플로 폴링 작업을 기존 작업자에 배치하거나 작업자가 없으면 대체 작업자를 생성합니다.
DreamineThreadManager.cs 파일의 760 번째 라인에서 정의되었습니다.
다음을 참조함 : _affinityService, _cyclePolicy, _logger, _scheduler, _threads, _timerResolutionService, Dreamine.Threading.Interfaces.IDreamineThread.AddJob(), Dreamine.Threading.Models.DreamineThreadCoreAssignment.None().
다음에 의해서 참조됨 : Register().


|
inline |
이름이 일치하는 작업자 스레드를 재개합니다.
| threadName | 재개할 작업자 이름입니다. |
true입니다.Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 547 번째 라인에서 정의되었습니다.
다음을 참조함 : TryGetThread().

|
inline |
등록된 모든 작업자 스레드를 재개합니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 582 번째 라인에서 정의되었습니다.
다음을 참조함 : GetThreads().

|
inline |
이름이 일치하는 작업자 스레드를 시작합니다.
| threadName | 시작할 작업자 이름입니다. |
true입니다.Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 399 번째 라인에서 정의되었습니다.
다음을 참조함 : TryGetThread().

|
inline |
등록된 모든 작업자 스레드의 스냅샷을 순회해 시작합니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 319 번째 라인에서 정의되었습니다.
다음을 참조함 : GetThreads().

|
inline |
이름이 일치하는 작업자 스레드를 동기 중지합니다.
| threadName | 중지할 작업자 이름입니다. |
true입니다.작업자의 join 대기 동안 호출 스레드가 차단될 수 있습니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 442 번째 라인에서 정의되었습니다.
다음을 참조함 : TryGetThread().

|
inline |
등록된 모든 작업자 스레드를 순서대로 동기 중지합니다.
각 작업자의 join 대기 동안 호출 스레드가 차단될 수 있습니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 343 번째 라인에서 정의되었습니다.
다음을 참조함 : GetThreads().
다음에 의해서 참조됨 : Dispose().


|
inline |
등록된 모든 작업자 스레드를 순서대로 비동기 중지합니다.
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 367 번째 라인에서 정의되었습니다.
다음을 참조함 : GetThreads().

|
inline |
이름이 일치하는 작업자 스레드를 비동기 중지합니다.
| threadName | 중지할 작업자 이름입니다. |
Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 477 번째 라인에서 정의되었습니다.
다음을 참조함 : TryGetThread().

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


|
inline |
대소문자를 구분하는 이름으로 등록된 작업자 스레드를 찾습니다.
| threadName | 찾을 작업자 이름입니다. |
| thread | 성공 시 찾은 작업자를 받습니다. |
true입니다.Dreamine.Threading.Interfaces.IDreamineThreadManager를 구현.
DreamineThreadManager.cs 파일의 622 번째 라인에서 정의되었습니다.
다음을 참조함 : _syncRoot, _threads.
다음에 의해서 참조됨 : Pause(), Resume(), Start(), Stop(), StopAsync().

|
private |
affinity Service 값을 보관합니다.
DreamineThreadManager.cs 파일의 70 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThreadManager(), Register(), RegisterOverflowJob().
|
private |
core Allocator 값을 보관합니다.
DreamineThreadManager.cs 파일의 43 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), DreamineThreadManager(), Register().
|
private |
cycle Policy 값을 보관합니다.
DreamineThreadManager.cs 파일의 52 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThreadManager(), Register(), RegisterOverflowJob().
|
private |
disposed 값을 보관합니다.
DreamineThreadManager.cs 파일의 97 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), ThrowIfDisposed().
|
private |
logger 값을 보관합니다.
DreamineThreadManager.cs 파일의 88 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThreadManager(), Register(), RegisterOverflowJob().
|
private |
scheduler 값을 보관합니다.
DreamineThreadManager.cs 파일의 61 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThreadManager(), RegisterOverflowJob().
|
private |
sync Root 값을 보관합니다.
DreamineThreadManager.cs 파일의 25 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), GetThreadInfos(), GetThreads(), Register(), TryGetThread().
|
private |
threads 값을 보관합니다.
DreamineThreadManager.cs 파일의 34 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), GetThreadInfos(), GetThreads(), Register(), RegisterOverflowJob(), TryGetThread().
|
private |
timer Resolution Service 값을 보관합니다.
DreamineThreadManager.cs 파일의 79 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DreamineThreadManager(), Register(), RegisterOverflowJob().