Dreamine.Threading.Windows 1.0.1
이 패키지는 다른 어셈블리에서 `DMContainer`를 partial class로 확장하지 않습니다. 등록은 별도의 Registration 클래스를 통해 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider 클래스 참조sealed

더 자세히 ...

Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider에 대한 상속 다이어그램 :
Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider에 대한 협력 다이어그램:

Public 멤버 함수

 WindowsProcessCpuUsageProvider ()
double GetTotalCpuUsagePercent ()
void Dispose ()

Private 속성

readonly object _syncRoot = new()
readonly Process _process
TimeSpan _lastProcessorTime
DateTimeOffset _lastTimestamp
double _lastCpuUsage
bool _disposed

상세한 설명

Windows에서 현재 프로세스의 CPU 사용률 정보를 제공합니다.

WindowsProcessCpuUsageProvider.cs 파일의 15 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ WindowsProcessCpuUsageProvider()

Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider.WindowsProcessCpuUsageProvider ( )
inline

현재 프로세스의 초기 CPU 시간과 시각으로 T:Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider 클래스의 새 인스턴스를 초기화합니다.

예외
InvalidOperationException현재 프로세스 정보를 가져올 수 없을 때 발생할 수 있습니다.

WindowsProcessCpuUsageProvider.cs 파일의 88 번째 라인에서 정의되었습니다.

89 {
90 _process = Process.GetCurrentProcess();
91 _lastProcessorTime = _process.TotalProcessorTime;
92 _lastTimestamp = DateTimeOffset.Now;
93 }

다음을 참조함 : _lastProcessorTime, _lastTimestamp, _process.

멤버 함수 문서화

◆ Dispose()

void Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider.Dispose ( )
inline

내부 T:System.Diagnostics.Process 핸들을 해제하며 정리 오류는 억제합니다.

WindowsProcessCpuUsageProvider.cs 파일의 159 번째 라인에서 정의되었습니다.

160 {
161 lock (_syncRoot)
162 {
163 if (_disposed)
164 {
165 return;
166 }
167
168 _disposed = true;
169
170 try
171 {
172 _process.Dispose();
173 }
174 catch
175 {
176 // Suppress on dispose.
177 }
178 }
179 }

다음을 참조함 : _disposed, _process, _syncRoot.

◆ GetTotalCpuUsagePercent()

double Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider.GetTotalCpuUsagePercent ( )
inline

최소 200밀리초 표본 간격으로 현재 프로세스의 코어 정규화 CPU 사용률을 계산합니다.

반환값
0~100으로 제한된 CPU 사용률이며 너무 이른 호출이나 정리 후에는 마지막 값을 반환합니다.
예외
InvalidOperationException프로세스 성능 정보를 새로 고치거나 읽을 수 없을 때 발생할 수 있습니다.

WindowsProcessCpuUsageProvider.cs 파일의 119 번째 라인에서 정의되었습니다.

120 {
121 lock (_syncRoot)
122 {
123 if (_disposed)
124 {
125 return _lastCpuUsage;
126 }
127
128 _process.Refresh();
129
130 var now = DateTimeOffset.Now;
131 var currentProcessorTime = _process.TotalProcessorTime;
132
133 var elapsedMs = (now - _lastTimestamp).TotalMilliseconds;
134 if (elapsedMs < 200)
135 {
136 return _lastCpuUsage;
137 }
138
139 var cpuTimeMs = (currentProcessorTime - _lastProcessorTime).TotalMilliseconds;
140
141 var cpuUsage = cpuTimeMs / (elapsedMs * Environment.ProcessorCount) * 100.0;
142
143 _lastProcessorTime = currentProcessorTime;
144 _lastTimestamp = now;
145 _lastCpuUsage = Math.Clamp(cpuUsage, 0, 100);
146
147 return _lastCpuUsage;
148 }
149 }

다음을 참조함 : _disposed, _lastCpuUsage, _lastProcessorTime, _lastTimestamp, _process, _syncRoot.

멤버 데이터 문서화

◆ _disposed

bool Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider._disposed
private

disposed 값을 보관합니다.

WindowsProcessCpuUsageProvider.cs 파일의 70 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dispose(), GetTotalCpuUsagePercent().

◆ _lastCpuUsage

double Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider._lastCpuUsage
private

last Cpu Usage 값을 보관합니다.

WindowsProcessCpuUsageProvider.cs 파일의 61 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTotalCpuUsagePercent().

◆ _lastProcessorTime

TimeSpan Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider._lastProcessorTime
private

last Processor Time 값을 보관합니다.

WindowsProcessCpuUsageProvider.cs 파일의 43 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTotalCpuUsagePercent(), WindowsProcessCpuUsageProvider().

◆ _lastTimestamp

DateTimeOffset Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider._lastTimestamp
private

last Timestamp 값을 보관합니다.

WindowsProcessCpuUsageProvider.cs 파일의 52 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetTotalCpuUsagePercent(), WindowsProcessCpuUsageProvider().

◆ _process

readonly Process Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider._process
private

process 값을 보관합니다.

WindowsProcessCpuUsageProvider.cs 파일의 34 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dispose(), GetTotalCpuUsagePercent(), WindowsProcessCpuUsageProvider().

◆ _syncRoot

readonly object Dreamine.Threading.Windows.Services.WindowsProcessCpuUsageProvider._syncRoot = new()
private

sync Root 값을 보관합니다.

WindowsProcessCpuUsageProvider.cs 파일의 25 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dispose(), GetTotalCpuUsagePercent().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: