Dreamine.Threading
1.0.1
이 패키지는 .NET ThreadPool이나 Task Parallel Library를 대체하려는 목적이 아닙니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DreamineThreadingRegistration.cs
이 파일의 문서화 페이지로 가기
1
using
System;
2
using
Dreamine.Logging.Interfaces;
3
using
Dreamine.MVVM.Core;
4
using
Dreamine.Threading.Allocators
;
5
using
Dreamine.Threading.Interfaces
;
6
using
Dreamine.Threading.Options
;
7
using
Dreamine.Threading.Policies
;
8
using
Dreamine.Threading.Services
;
9
10
namespace
Dreamine.Threading.Registration
;
11
20
public
static
class
DreamineThreadingRegistration
21
{
46
public
static
void
Register
(Action<DreamineThreadingOptions>? configure =
null
)
47
{
48
var options =
new
DreamineThreadingOptions
();
49
configure?.Invoke(options);
50
51
ICpuUsageProvider
? cpuUsageProvider = DMContainer.IsRegistered<
ICpuUsageProvider
>()
52
? DMContainer.Resolve<
ICpuUsageProvider
>()
53
:
null
;
54
55
Register
(options, cpuUsageProvider);
56
}
57
98
public
static
void
Register
(
99
DreamineThreadingOptions
options,
100
ICpuUsageProvider
? cpuUsageProvider =
null
)
101
{
102
ArgumentNullException.ThrowIfNull(options);
103
104
DMContainer.RegisterSingleton<
IThreadCoreAllocator
>(
105
new
AutoCoreAllocator
());
106
107
DMContainer.RegisterSingleton<
IThreadCyclePolicy
>(
108
options.UseAdaptiveCpuPolicy && cpuUsageProvider is not
null
109
?
new
AdaptiveCpuCyclePolicy
(cpuUsageProvider)
110
:
new
FixedIntervalCyclePolicy
());
111
112
DMContainer.RegisterSingleton<
IDreamineThreadScheduler
>(
113
new
DreamineThreadScheduler
());
114
115
DMContainer.RegisterSingleton<
IDreamineThreadManager
>(
116
new
DreamineThreadManager
(
117
DMContainer.Resolve<
IThreadCoreAllocator
>(),
118
DMContainer.Resolve<
IThreadCyclePolicy
>(),
119
DMContainer.Resolve<
IDreamineThreadScheduler
>(),
120
ResolveOptional<IThreadAffinityService>(),
121
ResolveOptional<ITimerResolutionService>(),
122
ResolveOptional<IDreamineLogger>()));
123
}
124
157
private
static
T?
ResolveOptional<T>
() where T : class
158
{
159
return
DMContainer.IsRegistered<T>()
160
? DMContainer.Resolve<T>()
161
:
null
;
162
}
163
}
Dreamine.Threading.Allocators
Definition
AutoCoreAllocator.cs:4
Dreamine.Threading.Interfaces
Definition
ICpuInfoProvider.cs:1
Dreamine.Threading.Options
Definition
DreamineThreadingOptions.cs:3
Dreamine.Threading.Policies
Definition
AdaptiveCpuCyclePolicy.cs:4
Dreamine.Threading.Registration
Definition
DreamineThreadingRegistration.cs:10
Dreamine.Threading.Services
Definition
DreamineThread.cs:5
Dreamine.Threading.Allocators.AutoCoreAllocator
Definition
AutoCoreAllocator.cs:15
Dreamine.Threading.Interfaces.ICpuUsageProvider
Definition
ICpuUsageProvider.cs:12
Dreamine.Threading.Interfaces.IDreamineThreadManager
Definition
IDreamineThreadManager.cs:14
Dreamine.Threading.Interfaces.IDreamineThreadScheduler
Definition
IDreamineThreadScheduler.cs:12
Dreamine.Threading.Interfaces.IThreadCoreAllocator
Definition
IThreadCoreAllocator.cs:14
Dreamine.Threading.Interfaces.IThreadCyclePolicy
Definition
IThreadCyclePolicy.cs:14
Dreamine.Threading.Options.DreamineThreadingOptions
Definition
DreamineThreadingOptions.cs:14
Dreamine.Threading.Policies.AdaptiveCpuCyclePolicy
Definition
AdaptiveCpuCyclePolicy.cs:15
Dreamine.Threading.Policies.FixedIntervalCyclePolicy
Definition
FixedIntervalCyclePolicy.cs:15
Dreamine.Threading.Registration.DreamineThreadingRegistration
Definition
DreamineThreadingRegistration.cs:21
Dreamine.Threading.Registration.DreamineThreadingRegistration.Register
static void Register(DreamineThreadingOptions options, ICpuUsageProvider? cpuUsageProvider=null)
Definition
DreamineThreadingRegistration.cs:98
Dreamine.Threading.Registration.DreamineThreadingRegistration.ResolveOptional< T >
static ? T ResolveOptional< T >()
Definition
DreamineThreadingRegistration.cs:157
Dreamine.Threading.Registration.DreamineThreadingRegistration.Register
static void Register(Action< DreamineThreadingOptions >? configure=null)
Definition
DreamineThreadingRegistration.cs:46
Dreamine.Threading.Services.DreamineThreadManager
Definition
DreamineThreadManager.cs:16
Dreamine.Threading.Services.DreamineThreadScheduler
Definition
DreamineThreadScheduler.cs:14
Registration
DreamineThreadingRegistration.cs
다음에 의해 생성됨 :
1.17.0