iconDreamine
← 목록

Dreamine.Threading.Wpf

stablev1.0.1

WPF Dispatcher 기반 스레딩 헬퍼 — UI 스레드 안전 작업 큐.

#csharp#dotnet#dreamine#monitoring#mvvm#threading#worker#wpf
TFM net8.0-windowsPackage Dreamine.Threading.Wpf참조 Dreamine.MVVM.Core, Dreamine.MVVM.ViewModels, Dreamine.Threading, Dreamine.Threading.Windows

Dreamine.Threading.Wpf

Dreamine.Threading.Wpf는 Dreamine.Threading을 위한 WPF 모니터링 UI 패키지입니다.

이 패키지는 WPF 애플리케이션에서 Worker Thread 상태, Priority, Interval, 할당된 CPU Core, Affinity 상태, Job 수, Cycle Count, Fault 상태 등을 표시합니다.

➡️ English README

목적

Core 패키지인 Dreamine.Threading은 Worker Thread, Polling Job, Scheduling Policy, Thread 상태 모델을 정의합니다.
이 패키지는 해당 Runtime 상태를 관찰하기 위한 WPF UI 구성 요소를 제공합니다.

Dreamine.Threading
 └─ Thread 상태 및 Manager 추상화

Dreamine.Threading.Wpf
 ├─ Thread Monitor View
 ├─ Thread Monitor ViewModel
 ├─ WPF UI Dispatcher
 └─ 상태/우선순위 Converter

책임

이 패키지의 책임:

  • 등록된 Worker Thread 표시
  • Thread Status 및 Priority 표시
  • Interval 및 할당된 CPU Core 표시
  • Affinity 상태 표시
  • Cycle Count 및 Job Count 표시
  • Last Error 정보 표시
  • WPF UI Thread에서 안전하게 모니터링 데이터 갱신
  • WPF 전용 코드를 Core Threading 패키지 밖으로 분리

패키지 구조

Dreamine.Threading.Wpf
├─ Services
│  └─ WpfThreadUiDispatcher.cs
│
├─ ViewModels
│  └─ DreamineThreadMonitorViewModel.cs
│
├─ Views
│  └─ DreamineThreadMonitorView.xaml
│
├─ Converters
│  ├─ ThreadPriorityTextConverter.cs
│  └─ ThreadStatusBrushConverter.cs
│
└─ Registration
   └─ DreamineThreadingWpfRegistration.cs

Thread Monitor View

Monitor View는 WPF DataGrid에 Thread 정보를 표시합니다.

표시 컬럼:

Name
Status
Priority
Interval
Core
Affinity
Jobs
Cycles
Last Error

이 Monitor로 다음 상태를 관찰할 수 있습니다.

  • Raw 0ms Worker
  • Adaptive 0ms Worker
  • Normal Polling Worker
  • Overflow Job 분산 상태
  • Cycle Count 차이
  • Affinity 할당
  • Fault 상태

선택 상세 패널

하단 상세 패널은 선택된 Worker Thread 정보를 표시합니다.

표시 정보:

Name
Status
Priority
Interval
Core
Affinity
Job Count
Cycle Count
Started At
Stopped At
Last Error

Refresh 중에도 선택 상태가 유지되도록 선택된 Thread 이름을 기준으로 재선택합니다.

WPF UI Dispatching

WpfThreadUiDispatcher는 Monitor 갱신이 WPF UI Thread에서 수행되도록 보장합니다.

Background Refresh Timer
 → IDreamineThreadManager.GetThreadInfos()
 → WpfThreadUiDispatcher.BeginInvoke(...)
 → ObservableCollection 갱신

등록

현재 등록 방식:

using Dreamine.Threading.Wpf.Registration;

DreamineThreadingWpfRegistration.Register();

이 호출은 다음 항목을 등록합니다.

WpfThreadUiDispatcher
DreamineThreadMonitorViewModel
DreamineThreadMonitorView

이 패키지는 Worker Thread를 직접 생성하거나 제어하지 않습니다. IDreamineThreadManager의 상태만 관찰합니다.

사용 예시

<UserControl
    xmlns:threadingViews="clr-namespace:Dreamine.Threading.Wpf.Views;assembly=Dreamine.Threading.Wpf">

    <threadingViews:DreamineThreadMonitorView />

</UserControl>

Wrapper Page 내부에서 사용할 경우:

<threadingViews:DreamineThreadMonitorView
    DataContext="{Binding ThreadMonitor}" />

설계 메모

이 패키지는 Dreamine.Threading의 추상화에 의존합니다.
Native Windows Thread 동작을 직접 제어하지 않아야 합니다.

WPF Monitor는 아래 정보를 통해 Thread 상태를 관찰합니다.

IDreamineThreadManager
DreamineThreadInfo
DreamineThreadStatus
DreamineThreadPriority

이렇게 하면 UI 계층이 Scheduling 및 Platform 로직과 분리됩니다.

검증 시나리오

WPF Monitor는 다음 구성으로 검증되었습니다.

High Adaptive Job: 5
High Raw Job:      5
Normal Job:        30
Total Job:         40

Monitor에서 관찰된 동작:

Raw Worker
 → 매우 높은 Cycle Count

Adaptive Worker
 → Adaptive Delay가 적용되어 낮은 Cycle Count

Normal Worker
 → 100ms 기준의 안정적인 Cycle 동작

Overflow Job
 → 일부 Worker의 Jobs Count 증가로 확인 가능

Affinity
 → Core 및 Affinity 컬럼에서 확인 가능

Last Error
 → 정상 검증 중 비어 있음

관련 패키지

Dreamine.Threading
Dreamine.Threading.Windows
Dreamine.Threading.Wpf

상태

구현됨:

  • WPF Thread Monitor View
  • Thread Monitor ViewModel
  • Observable Thread 정보 목록
  • 주기적 Refresh
  • Status Brush Converter
  • Priority Text Converter
  • 선택 Thread 상세 패널
  • WPF UI Dispatcher
  • Registration Helper

향후 계획:

  • Summary Header
  • 전체 Worker 수 표시
  • 전체 Job 수 표시
  • Overflow Job 수 표시
  • Adaptive / Raw / Normal 그룹 표시
  • Refresh Interval 옵션
  • Start / Stop / Pause / Resume Command 버튼
  • 더 안정적인 Incremental Collection Update

License

MIT License

구조 다이어그램

classDiagram
    class WpfDispatcher {
        -Dispatcher _dispatcher
        +InvokeAsync(Action) Task
        +InvokeAsync~T~(Func~T~) Task~T~
        +CheckAccess() bool
        +BeginInvoke(Action) void
    }
    class WpfDispatcherExtensions {
        <<static>>
        +InvokeOnUi(Action) Task
        +InvokeOnUi~T~(Func~T~) Task~T~
        +SafeInvoke(Action) void
    }
    class BackgroundWorkerViewModel {
        +bool IsBusy
        +int Progress
        +string StatusMessage
        +RunAsync(Func~IProgress, CancellationToken, Task~) Task
        +Cancel() void
    }
    class IDispatcher {
        <<interface>>
    }
    IDispatcher <|.. WpfDispatcher
    WpfDispatcherExtensions --> WpfDispatcher
    BackgroundWorkerViewModel --> WpfDispatcher

API 문서

타입

BatchedDispatcher`1

\if KO 빈번한 UI 갱신을 WPF UI 스레드에서 처리하는 일괄 작업으로 병합합니다. \endif \if EN Coalesces high-frequency UI updates into batches dispatched on the WPF UI thread. \endif

DreamineThreadingWpfOptions

\if KO Dreamine WPF 스레딩 서비스 등록 옵션을 제공합니다. \endif \if EN Provides configuration options for Dreamine WPF threading-service registration. \endif

DreamineThreadingWpfRegistration

\if KO Dreamine WPF 스레딩 서비스를 등록하는 도우미를 제공합니다. \endif \if EN Provides helpers for registering Dreamine WPF threading services. \endif

DreamineThreadMonitorView

\if KO DreamineThreadMonitorView.xaml의 WPF 상호 작용 논리를 제공합니다. \endif \if EN Provides WPF interaction logic for DreamineThreadMonitorView.xaml. \endif

DreamineThreadMonitorViewModel

\if KO Dreamine 스레드 모니터 뷰의 ViewModel을 제공합니다. \endif \if EN Provides the view model for the Dreamine thread-monitor view. \endif

IThreadUiDispatcher

\if KO 스레드 모니터 ViewModel의 UI 스레드 디스패치를 추상화합니다. \endif \if EN Abstracts UI-thread dispatching for thread-monitor view models. \endif

ThreadInfoRow

\if KO 이 사용하는 스냅샷의 변경 가능하고 관찰 가능한 래퍼입니다. \endif \if EN A mutable, observable wrapper around snapshots used by . \endif

ThreadPriorityTextConverter

\if KO Dreamine 스레드 우선순위 값을 표시 텍스트로 변환합니다. \endif \if EN Converts Dreamine thread-priority values to display text. \endif

ThreadStatusBrushConverter

\if KO Dreamine 스레드 상태 값을 WPF 브러시로 변환합니다. \endif \if EN Converts Dreamine thread-status values to WPF brushes. \endif

WpfThreadUiDispatcher

\if KO Dreamine 스레딩 WPF 구성 요소에 UI 스레드 디스패치를 제공합니다. \endif \if EN Provides UI-thread dispatching for Dreamine threading WPF components. \endif

BatchedDispatcher`1

#ctor Method

\if KO 대상 Dispatcher와 일괄 콜백으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of with a target dispatcher and batch callback. \endif

dispatcher— \if KO 대상 WPF Dispatcher입니다. \endif \if EN The target WPF dispatcher. \endif
onBatch— \if KO 배출된 항목 목록과 함께 UI 스레드에서 호출할 콜백입니다. \endif \if EN The callback invoked on the UI thread with the drained batch. \endif
priority— \if KO Dispatcher 우선순위이며 기본값은 입니다. \endif \if EN The dispatcher priority; the default is . \endif
Enqueue Method

\if KO UI 일괄 전달을 위해 항목을 큐에 넣고 필요하면 배출 작업을 예약합니다. \endif \if EN Enqueues an item for batched UI delivery and schedules a flush when needed. \endif

item— \if KO 전달할 항목입니다. \endif \if EN The item to deliver. \endif
Flush Method

\if KO 대기 큐에서 최대 일괄 크기만큼 항목을 배출하고 콜백에 전달한 뒤 남은 항목을 다시 예약합니다. \endif \if EN Drains up to one batch from the pending queue, invokes the callback, and reschedules remaining items. \endif

ScheduleFlushIfNeeded Method

\if KO 아직 배출 작업이 예약되지 않은 경우 Dispatcher 콜백 하나를 원자적으로 예약합니다. \endif \if EN Atomically schedules one dispatcher callback when no flush is already pending. \endif

_dispatcher Field

\if KO dispatcher 값을 보관합니다. \endif \if EN Stores the dispatcher value. \endif

_onBatch Field

\if KO on Batch 값을 보관합니다. \endif \if EN Stores the on batch value. \endif

_pending Field

\if KO pending 값을 보관합니다. \endif \if EN Stores the pending value. \endif

_priority Field

\if KO priority 값을 보관합니다. \endif \if EN Stores the priority value. \endif

_scheduled Field

\if KO scheduled 값을 보관합니다. \endif \if EN Stores the scheduled value. \endif

MaxBatchSize Field

\if KO 한 UI 스레드 일괄 작업에서 처리할 최대 항목 수입니다. \endif \if EN The maximum number of items processed in one UI-thread batch. \endif

DreamineThreadingWpfOptions

AllowOverride Property

\if KO 기존 서비스 등록을 덮어쓸 수 있는지 여부를 가져오거나 설정합니다. \endif \if EN Gets or sets whether existing service registrations can be overwritten. \endif

RegisterThreadMonitor Property

\if KO WPF 스레드 모니터 ViewModel을 등록할지 여부를 가져오거나 설정합니다. \endif \if EN Gets or sets whether the WPF thread-monitor view model is registered. \endif

RegisterWindowsServices Property

\if KO Windows 전용 스레딩 서비스를 등록할지 여부를 가져오거나 설정합니다. \endif \if EN Gets or sets whether Windows-specific threading services are registered. \endif

UseAdaptiveCpuPolicy Property

\if KO 적응형 CPU 주기 정책을 사용할지 여부를 가져오거나 설정합니다. \endif \if EN Gets or sets whether the adaptive CPU cycle policy is used. \endif

DreamineThreadingWpfRegistration

Register Method

\if KO 선택적 구성에 따라 Windows·핵심·모니터 WPF 스레딩 서비스를 등록합니다. \endif \if EN Registers Windows, core, and monitor WPF threading services according to optional configuration. \endif

configure— \if KO WPF 스레딩 등록 옵션을 수정할 선택적 대리자입니다. \endif \if EN The optional delegate that modifies WPF threading registration options. \endif
RegisterThreadMonitor Method

\if KO WPF UI Dispatcher와 스레드 모니터 ViewModel 팩터리를 전역 컨테이너에 등록합니다. \endif \if EN Registers the WPF UI dispatcher and thread-monitor view-model factory in the global container. \endif

DreamineThreadMonitorView

#ctor Method

\if KO XAML 구성 요소를 로드해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of by loading its XAML components. \endif

InitializeComponent Method

InitializeComponent

DreamineThreadMonitorViewModel

#ctor Method

\if KO 기본 새로 고침 간격으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of with the default refresh interval. \endif

threadManager— \if KO 스냅샷과 제어 작업을 제공할 스레드 관리자입니다. \endif \if EN The thread manager providing snapshots and control operations. \endif
dispatcher— \if KO 일괄 갱신을 실행할 UI Dispatcher입니다. \endif \if EN The UI dispatcher on which batched updates execute. \endif
#ctor Method

\if KO 지정한 새로 고침 간격으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of with the specified refresh interval. \endif

threadManager— \if KO 스냅샷과 제어 작업을 제공할 스레드 관리자입니다. \endif \if EN The thread manager providing snapshots and control operations. \endif
dispatcher— \if KO 일괄 갱신을 실행할 UI Dispatcher입니다. \endif \if EN The UI dispatcher on which batched updates execute. \endif
refreshInterval— \if KO 양수 폴링 간격이며 0 이하는 기본값으로 보정됩니다. \endif \if EN The positive polling interval; non-positive values are normalized to the default. \endif
ApplySnapshotsOnUiThread Method

\if KO 일괄 처리된 스냅샷 중 최신 항목을 UI 행 컬렉션에 차이 병합합니다. \endif \if EN Diff-merges the newest snapshot in a batch into the UI row collection. \endif

batch— \if KO 오래된 것부터 최신 순서로 병합된 스레드 정보 스냅샷 목록입니다. \endif \if EN The coalesced thread-information snapshots ordered from older to newest. \endif
Dispose Method

\if KO 폴링 타이머를 정리하고 진행 중 콜백 종료를 최대 1초 동안 기다립니다. \endif \if EN Disposes the polling timer and waits up to one second for an in-flight callback to finish. \endif

HasSelectedThread Method

\if KO 현재 선택된 스레드 행이 있는지 확인합니다. \endif \if EN Determines whether a thread row is currently selected. \endif

반환: \if KO 선택 항목이 있으면 입니다. \endif \if EN when a row is selected. \endif

OnPropertyChanged Method

\if KO 지정한 속성 이름으로 이벤트를 발생시킵니다. \endif \if EN Raises for the specified property name. \endif

propertyName— \if KO 변경된 속성 이름입니다. \endif \if EN The changed property name. \endif
OnTimerTick Method

\if KO 스레드 풀 타이머에서 관리자 스냅샷을 가져와 UI 큐에 넣습니다. \endif \if EN Obtains a manager snapshot from the thread-pool timer and enqueues it for UI delivery. \endif

state— \if KO 타이머 상태 값이며 사용하지 않습니다. \endif \if EN The timer state value, which is ignored. \endif
PauseAllThreads Method

\if KO 모든 스레드를 일시 정지하고 모니터 데이터를 새로 고칩니다. \endif \if EN Pauses all threads and refreshes monitor data. \endif

PauseSelectedThread Method

\if KO 선택된 스레드를 일시 정지하고 모니터 데이터를 새로 고칩니다. \endif \if EN Pauses the selected thread and refreshes monitor data. \endif

RaiseCommandStates Method

\if KO 선택 스레드 제어 명령의 실행 가능 상태 변경을 알립니다. \endif \if EN Notifies selected-thread control commands that their can-execute state changed. \endif

Refresh Method

\if KO 관리자에서 즉시 스냅샷을 가져와 UI 일괄 갱신 큐에 넣습니다. \endif \if EN Immediately obtains a manager snapshot and enqueues it for batched UI updating. \endif

ResumeAllThreads Method

\if KO 모든 스레드를 재개하고 모니터 데이터를 새로 고칩니다. \endif \if EN Resumes all threads and refreshes monitor data. \endif

ResumeSelectedThread Method

\if KO 선택된 스레드를 재개하고 모니터 데이터를 새로 고칩니다. \endif \if EN Resumes the selected thread and refreshes monitor data. \endif

StartAllThreads Method

\if KO 모든 스레드를 시작하고 모니터 데이터를 새로 고칩니다. \endif \if EN Starts all threads and refreshes monitor data. \endif

StartSelectedThread Method

\if KO 선택된 스레드를 시작하고 모니터 데이터를 새로 고칩니다. \endif \if EN Starts the selected thread and refreshes monitor data. \endif

StopAllThreads Method

\if KO 모든 스레드를 비동기 중지하고 모니터 데이터를 새로 고칩니다. \endif \if EN Asynchronously stops all threads and refreshes monitor data. \endif

반환: \if KO 전체 스레드 중지 및 새로 고침 작업입니다. \endif \if EN A task representing all-thread shutdown and refresh. \endif

StopSelectedThread Method

\if KO 선택된 스레드를 비동기 중지하고 모니터 데이터를 새로 고칩니다. \endif \if EN Asynchronously stops the selected thread and refreshes monitor data. \endif

반환: \if KO 선택 스레드 중지 및 새로 고침 작업입니다. \endif \if EN A task representing selected-thread shutdown and refresh. \endif

PauseAllCommand Property

\if KO 모든 스레드 일시 정지 명령을 가져옵니다. \endif \if EN Gets the command that pauses all threads. \endif

PauseCommand Property

\if KO 선택 스레드 일시 정지 명령을 가져옵니다. \endif \if EN Gets the command that pauses the selected thread. \endif

RefreshCommand Property

\if KO 즉시 새로 고침 명령을 가져옵니다. \endif \if EN Gets the immediate-refresh command. \endif

ResumeAllCommand Property

\if KO 모든 스레드 재개 명령을 가져옵니다. \endif \if EN Gets the command that resumes all threads. \endif

ResumeCommand Property

\if KO 선택 스레드 재개 명령을 가져옵니다. \endif \if EN Gets the command that resumes the selected thread. \endif

SelectedDetailText Property

\if KO 선택 스레드의 상태·코어·통계·오류를 여러 줄 텍스트로 가져옵니다. \endif \if EN Gets status, core, statistics, and error details for the selected thread as multiline text. \endif

SelectedThread Property

\if KO 선택된 스레드 행을 가져오거나 설정하고 상세 텍스트와 명령 상태를 갱신합니다. \endif \if EN Gets or sets the selected thread row and updates detail text and command state. \endif

StartAllCommand Property

\if KO 모든 스레드 시작 명령을 가져옵니다. \endif \if EN Gets the command that starts all threads. \endif

StartCommand Property

\if KO 선택 스레드 시작 명령을 가져옵니다. \endif \if EN Gets the command that starts the selected thread. \endif

StopAllCommand Property

\if KO 모든 스레드 중지 명령을 가져옵니다. \endif \if EN Gets the command that stops all threads. \endif

StopCommand Property

\if KO 선택 스레드 중지 명령을 가져옵니다. \endif \if EN Gets the command that stops the selected thread. \endif

Threads Property

\if KO 안정적인 행 인스턴스로 유지되는 스레드 정보 컬렉션을 가져옵니다. \endif \if EN Gets the thread-information collection maintained with stable row instances. \endif

_dispatcher Field

\if KO dispatcher 값을 보관합니다. \endif \if EN Stores the dispatcher value. \endif

_disposed Field

\if KO disposed 값을 보관합니다. \endif \if EN Stores the disposed value. \endif

_pauseAllCommand Field

\if KO pause All Command 값을 보관합니다. \endif \if EN Stores the pause all command value. \endif

_pauseCommand Field

\if KO pause Command 값을 보관합니다. \endif \if EN Stores the pause command value. \endif

_refreshCommand Field

\if KO refresh Command 값을 보관합니다. \endif \if EN Stores the refresh command value. \endif

_refreshTimer Field

\if KO refresh Timer 값을 보관합니다. \endif \if EN Stores the refresh timer value. \endif

_resumeAllCommand Field

\if KO resume All Command 값을 보관합니다. \endif \if EN Stores the resume all command value. \endif

_resumeCommand Field

\if KO resume Command 값을 보관합니다. \endif \if EN Stores the resume command value. \endif

_rowsByName Field

\if KO rows By Name 값을 보관합니다. \endif \if EN Stores the rows by name value. \endif

_selectedThread Field

\if KO selected Thread 값을 보관합니다. \endif \if EN Stores the selected thread value. \endif

_startAllCommand Field

\if KO start All Command 값을 보관합니다. \endif \if EN Stores the start all command value. \endif

_startCommand Field

\if KO start Command 값을 보관합니다. \endif \if EN Stores the start command value. \endif

_stopAllCommand Field

\if KO stop All Command 값을 보관합니다. \endif \if EN Stores the stop all command value. \endif

_stopCommand Field

\if KO stop Command 값을 보관합니다. \endif \if EN Stores the stop command value. \endif

_threadManager Field

\if KO thread Manager 값을 보관합니다. \endif \if EN Stores the thread manager value. \endif

_uiBatch Field

\if KO ui Batch 값을 보관합니다. \endif \if EN Stores the ui batch value. \endif

DefaultRefreshInterval Field

\if KO 폴링 타이머의 기본 새로 고침 간격입니다. \endif \if EN The default refresh interval for the polling timer. \endif

PropertyChanged Event

\if KO ViewModel 속성 값이 변경될 때 발생합니다. \endif \if EN Occurs when a view-model property value changes. \endif

IThreadUiDispatcher

BeginInvoke Method

\if KO 지정한 동작을 UI 스레드에서 비동기 예약합니다. \endif \if EN Schedules the specified action asynchronously on the UI thread. \endif

action— \if KO 예약할 동작입니다. \endif \if EN The action to schedule. \endif
Invoke Method

\if KO 지정한 동작을 UI 스레드에서 동기 실행합니다. \endif \if EN Executes the specified action synchronously on the UI thread. \endif

action— \if KO 실행할 동작입니다. \endif \if EN The action to execute. \endif
Dispatcher Property

\if KO 일괄 UI 갱신에 사용하는 기본 Dispatcher를 가져옵니다. \endif \if EN Gets the underlying dispatcher used by batched UI updates. \endif

ThreadInfoRow

#ctor Method

\if KO 스레드 정보 스냅샷에서 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of from a thread-information snapshot. \endif

info— \if KO 초기 값을 제공할 스레드 정보 스냅샷입니다. \endif \if EN The thread-information snapshot providing initial values. \endif
OnPropertyChanged Method

\if KO 지정한 속성 이름으로 이벤트를 발생시킵니다. \endif \if EN Raises for the specified property name. \endif

propertyName— \if KO 변경된 속성 이름입니다. \endif \if EN The changed property name. \endif
SetField``1 Method

\if KO 필드 값이 달라진 경우 값을 갱신하고 속성 변경 알림을 발생시킵니다. \endif \if EN Updates a field and raises property-change notification when the value differs. \endif

field— \if KO 갱신할 필드 참조입니다. \endif \if EN A reference to the field to update. \endif
value— \if KO 새 값입니다. \endif \if EN The new value. \endif
propertyName— \if KO 알림에 사용할 속성 이름입니다. \endif \if EN The property name used for notification. \endif

반환: \if KO 값이 변경되었으면 입니다. \endif \if EN when the value changed. \endif

UpdateFrom Method

\if KO 새 스냅샷에서 행을 갱신하고 실제 값이 변경된 속성에만 알림을 발생시킵니다. \endif \if EN Updates the row from a new snapshot and raises notifications only for properties whose values changed. \endif

info— \if KO 적용할 새 스레드 정보 스냅샷입니다. \endif \if EN The new thread-information snapshot to apply. \endif

반환: \if KO 하나 이상의 속성이 변경되었으면 입니다. \endif \if EN when at least one property changed. \endif

CoreIndex Property

\if KO 할당된 CPU 코어 인덱스를 가져옵니다. \endif \if EN Gets the assigned CPU core index. \endif

CycleCount Property

\if KO 완료된 실행 주기 수를 가져옵니다. \endif \if EN Gets the number of completed cycles. \endif

IntervalMs Property

\if KO 밀리초 단위 작업자 실행 간격을 가져옵니다. \endif \if EN Gets the worker-thread interval in milliseconds. \endif

IsFaulted Property

\if KO 작업자가 오류 상태인지 여부를 가져옵니다. \endif \if EN Gets whether the worker is in a faulted state. \endif

IsPaused Property

\if KO 작업자가 현재 일시 정지되었는지 여부를 가져옵니다. \endif \if EN Gets whether the worker is currently paused. \endif

IsRunning Property

\if KO 작업자가 현재 실행 중인지 여부를 가져옵니다. \endif \if EN Gets whether the worker is currently running, for binding convenience. \endif

JobCount Property

\if KO 작업자에 할당된 작업 수를 가져옵니다. \endif \if EN Gets the number of jobs assigned to the worker. \endif

LastErrorMessage Property

\if KO 마지막 예외 메시지를 가져옵니다. \endif \if EN Gets the most recent exception message. \endif

Name Property

\if KO 생성 후 변경되지 않는 작업자 스레드 이름을 가져옵니다. \endif \if EN Gets the worker-thread name, a stable identifier that never changes after construction. \endif

Priority Property

\if KO 작업자 스레드 우선순위를 가져옵니다. \endif \if EN Gets the worker-thread priority. \endif

StartedAt Property

\if KO 마지막 시작 시각을 가져옵니다. \endif \if EN Gets the most recent start time. \endif

Status Property

\if KO 작업자 스레드 상태를 가져옵니다. \endif \if EN Gets the worker-thread status. \endif

StoppedAt Property

\if KO 마지막 중지 시각을 가져옵니다. \endif \if EN Gets the most recent stop time. \endif

UseAffinity Property

\if KO CPU 선호도 활성화 여부를 가져옵니다. \endif \if EN Gets whether CPU affinity is enabled. \endif

_coreIndex Field

\if KO core Index 값을 보관합니다. \endif \if EN Stores the core index value. \endif

_cycleCount Field

\if KO cycle Count 값을 보관합니다. \endif \if EN Stores the cycle count value. \endif

_intervalMs Field

\if KO interval Ms 값을 보관합니다. \endif \if EN Stores the interval ms value. \endif

_jobCount Field

\if KO job Count 값을 보관합니다. \endif \if EN Stores the job count value. \endif

_lastErrorMessage Field

\if KO last Error Message 값을 보관합니다. \endif \if EN Stores the last error message value. \endif

_priority Field

\if KO priority 값을 보관합니다. \endif \if EN Stores the priority value. \endif

_startedAt Field

\if KO started At 값을 보관합니다. \endif \if EN Stores the started at value. \endif

_status Field

\if KO status 값을 보관합니다. \endif \if EN Stores the status value. \endif

_stoppedAt Field

\if KO stopped At 값을 보관합니다. \endif \if EN Stores the stopped at value. \endif

_useAffinity Field

\if KO use Affinity 값을 보관합니다. \endif \if EN Stores the use affinity value. \endif

PropertyChanged Event

\if KO 행 속성 값이 변경될 때 발생합니다. \endif \if EN Occurs when a row property value changes. \endif

ThreadPriorityTextConverter

Convert Method

\if KO 스레드 우선순위 값을 열거형 이름 텍스트로 변환합니다. \endif \if EN Converts a thread-priority value to its enumeration-name text. \endif

value— \if KO 변환할 우선순위 값입니다. \endif \if EN The priority value to convert. \endif
targetType— \if KO 바인딩 대상 형식이며 사용하지 않습니다. \endif \if EN The binding target type, which is ignored. \endif
parameter— \if KO 변환 매개변수이며 사용하지 않습니다. \endif \if EN The converter parameter, which is ignored. \endif
culture— \if KO 문화권 정보이며 사용하지 않습니다. \endif \if EN The culture information, which is ignored. \endif

반환: \if KO 우선순위 이름이며 값 형식이 다르면 빈 문자열입니다. \endif \if EN The priority name, or an empty string when the value has another type. \endif

ConvertBack Method

\if KO 역변환을 지원하지 않고 을 반환합니다. \endif \if EN Does not support conversion back and returns . \endif

value— \if KO 사용하지 않는 원본 값입니다. \endif \if EN The unused source value. \endif
targetType— \if KO 사용하지 않는 대상 형식입니다. \endif \if EN The unused target type. \endif
parameter— \if KO 사용하지 않는 변환 매개변수입니다. \endif \if EN The unused converter parameter. \endif
culture— \if KO 사용하지 않는 문화권입니다. \endif \if EN The unused culture. \endif

반환: \if KO 항상 입니다. \endif \if EN Always . \endif

ThreadStatusBrushConverter

Convert Method

\if KO 스레드 상태 값을 상태별 WPF 브러시로 변환합니다. \endif \if EN Converts a thread-status value to its state-specific WPF brush. \endif

value— \if KO 변환할 상태 값입니다. \endif \if EN The status value to convert. \endif
targetType— \if KO 바인딩 대상 형식이며 사용하지 않습니다. \endif \if EN The binding target type, which is ignored. \endif
parameter— \if KO 변환 매개변수이며 사용하지 않습니다. \endif \if EN The converter parameter, which is ignored. \endif
culture— \if KO 문화권 정보이며 사용하지 않습니다. \endif \if EN The culture information, which is ignored. \endif

반환: \if KO 상태별 브러시이며 알 수 없는 값은 회색입니다. \endif \if EN The state-specific brush, or gray for an unrecognized value. \endif

ConvertBack Method

\if KO 역변환을 지원하지 않고 을 반환합니다. \endif \if EN Does not support conversion back and returns . \endif

value— \if KO 사용하지 않는 원본 값입니다. \endif \if EN The unused source value. \endif
targetType— \if KO 사용하지 않는 대상 형식입니다. \endif \if EN The unused target type. \endif
parameter— \if KO 사용하지 않는 변환 매개변수입니다. \endif \if EN The unused converter parameter. \endif
culture— \if KO 사용하지 않는 문화권입니다. \endif \if EN The unused culture. \endif

반환: \if KO 항상 입니다. \endif \if EN Always . \endif

WpfThreadUiDispatcher

#ctor Method

\if KO 현재 애플리케이션 Dispatcher 또는 현재 스레드 Dispatcher로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the current application or thread dispatcher. \endif

#ctor Method

\if KO 지정한 Dispatcher로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of with the specified dispatcher. \endif

dispatcher— \if KO UI 작업을 실행할 WPF Dispatcher입니다. \endif \if EN The WPF dispatcher on which UI work executes. \endif
BeginInvoke Method

\if KO 이미 UI 스레드이면 즉시, 아니면 우선순위로 동작을 예약합니다. \endif \if EN Executes immediately on the UI thread, or schedules the action at priority otherwise. \endif

action— \if KO 실행하거나 예약할 동작입니다. \endif \if EN The action to execute or schedule. \endif
Invoke Method

\if KO 이미 UI 스레드이면 즉시, 아니면 Dispatcher를 통해 지정한 동작을 동기 실행합니다. \endif \if EN Executes the action immediately on the UI thread, or synchronously through the dispatcher otherwise. \endif

action— \if KO 실행할 동작입니다. \endif \if EN The action to execute. \endif
Dispatcher Property

\if KO 기본 WPF 를 가져옵니다. \endif \if EN Gets the underlying WPF . \endif

_dispatcher Field

\if KO dispatcher 값을 보관합니다. \endif \if EN Stores the dispatcher value. \endif