Dreamine.Threading.Wpf 1.0.1
이 패키지는 Worker Thread를 직접 생성하거나 제어하지 않습니다. `IDreamineThreadManager`의 상태만 관찰합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel 클래스 참조sealed

더 자세히 ...

Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel에 대한 상속 다이어그램 :
Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel에 대한 협력 다이어그램:

Public 멤버 함수

 DreamineThreadMonitorViewModel (IDreamineThreadManager threadManager, IThreadUiDispatcher dispatcher)
 DreamineThreadMonitorViewModel (IDreamineThreadManager threadManager, IThreadUiDispatcher dispatcher, TimeSpan refreshInterval)
void Refresh ()
void Dispose ()

정적 Public 속성

static readonly TimeSpan DefaultRefreshInterval = TimeSpan.FromMilliseconds(500)

속성

ObservableCollection< ThreadInfoRowThreads = new() [get]
ICommand StartCommand [get]
ICommand StopCommand [get]
ICommand PauseCommand [get]
ICommand ResumeCommand [get]
ICommand RefreshCommand [get]
ICommand StartAllCommand [get]
ICommand StopAllCommand [get]
ICommand PauseAllCommand [get]
ICommand ResumeAllCommand [get]
ThreadInfoRowSelectedThread [get, set]
string??? SelectedDetailText [get]

이벤트

PropertyChangedEventHandler? PropertyChanged

Private 멤버 함수

void OnTimerTick (object? state)
void ApplySnapshotsOnUiThread (IReadOnlyList< IReadOnlyList< DreamineThreadInfo > > batch)
bool HasSelectedThread ()
void StartSelectedThread ()
async Task StopSelectedThread ()
void PauseSelectedThread ()
void ResumeSelectedThread ()
void StartAllThreads ()
async Task StopAllThreads ()
void PauseAllThreads ()
void ResumeAllThreads ()
void RaiseCommandStates ()
void OnPropertyChanged ([CallerMemberName] string? propertyName=null)

Private 속성

readonly IDreamineThreadManager _threadManager
readonly IThreadUiDispatcher _dispatcher
readonly Timer _refreshTimer
readonly BatchedDispatcher< IReadOnlyList< DreamineThreadInfo > > _uiBatch
readonly Dictionary< string, ThreadInfoRow_rowsByName = new(StringComparer.Ordinal)
ThreadInfoRow_selectedThread
int _disposed
readonly RelayCommand _startCommand
readonly AsyncRelayCommand _stopCommand
readonly RelayCommand _pauseCommand
readonly RelayCommand _resumeCommand
readonly RelayCommand _refreshCommand
readonly RelayCommand _startAllCommand
readonly AsyncRelayCommand _stopAllCommand
readonly RelayCommand _pauseAllCommand
readonly RelayCommand _resumeAllCommand

상세한 설명

Dreamine 스레드 모니터 뷰의 ViewModel을 제공합니다.

스레드 관리자를 주기적으로 폴링하고 기존 행 갱신·신규 행 추가·삭제 행 제거 방식으로 Threads에 차이를 적용합니다. 전체 컬렉션 교체로 인한 깜박임과 선택 손실을 피하고, BatchedDispatcher<T>로 UI 갱신을 병합합니다.

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

생성자 & 소멸자 문서화

◆ DreamineThreadMonitorViewModel() [1/2]

Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.DreamineThreadMonitorViewModel ( IDreamineThreadManager threadManager,
IThreadUiDispatcher dispatcher )
inline

기본 새로 고침 간격으로 T:Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel 클래스의 새 인스턴스를 초기화합니다.

매개변수
threadManager스냅샷과 제어 작업을 제공할 스레드 관리자입니다.
dispatcher일괄 갱신을 실행할 UI Dispatcher입니다.
예외
ArgumentNullException인수 중 하나가 null일 때 발생합니다.

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

396 : this(threadManager, dispatcher, DefaultRefreshInterval)
397 {
398 }

다음을 참조함 : DefaultRefreshInterval.

◆ DreamineThreadMonitorViewModel() [2/2]

Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.DreamineThreadMonitorViewModel ( IDreamineThreadManager threadManager,
IThreadUiDispatcher dispatcher,
TimeSpan refreshInterval )
inline

지정한 새로 고침 간격으로 T:Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel 클래스의 새 인스턴스를 초기화합니다.

매개변수
threadManager스냅샷과 제어 작업을 제공할 스레드 관리자입니다.
dispatcher일괄 갱신을 실행할 UI Dispatcher입니다.
refreshInterval양수 폴링 간격이며 0 이하는 기본값으로 보정됩니다.
예외
ArgumentNullExceptionthreadManager 또는 dispatchernull일 때 발생합니다.

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

444 {
445 _threadManager = threadManager ?? throw new ArgumentNullException(nameof(threadManager));
446 _dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher));
447
448 if (refreshInterval <= TimeSpan.Zero)
449 {
450 refreshInterval = DefaultRefreshInterval;
451 }
452
453 _uiBatch = new BatchedDispatcher<IReadOnlyList<DreamineThreadInfo>>(
454 dispatcher.Dispatcher,
455 ApplySnapshotsOnUiThread,
456 DispatcherPriority.Background);
457
458 _startCommand = new RelayCommand(StartSelectedThread, HasSelectedThread);
459 _stopCommand = new AsyncRelayCommand(StopSelectedThread, HasSelectedThread);
460 _pauseCommand = new RelayCommand(PauseSelectedThread, HasSelectedThread);
461 _resumeCommand = new RelayCommand(ResumeSelectedThread, HasSelectedThread);
462 _refreshCommand = new RelayCommand(Refresh);
463 _startAllCommand = new RelayCommand(StartAllThreads);
464 _stopAllCommand = new AsyncRelayCommand(StopAllThreads);
465 _pauseAllCommand = new RelayCommand(PauseAllThreads);
466 _resumeAllCommand = new RelayCommand(ResumeAllThreads);
467
468 // Initial sync refresh so the grid is populated before the timer fires.
469 Refresh();
470
471 _refreshTimer = new Timer(
472 OnTimerTick,
473 null,
474 refreshInterval,
475 refreshInterval);
476 }

다음을 참조함 : _dispatcher, _pauseAllCommand, _pauseCommand, _refreshCommand, _refreshTimer, _resumeAllCommand, _resumeCommand, _startAllCommand, _startCommand, _stopAllCommand, _stopCommand, _threadManager, _uiBatch, ApplySnapshotsOnUiThread(), DefaultRefreshInterval, Dreamine.Threading.Wpf.Services.IThreadUiDispatcher.Dispatcher, HasSelectedThread(), OnTimerTick(), PauseAllThreads(), PauseSelectedThread(), Refresh(), ResumeAllThreads(), ResumeSelectedThread(), StartAllThreads(), StartSelectedThread(), StopAllThreads(), StopSelectedThread().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ ApplySnapshotsOnUiThread()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.ApplySnapshotsOnUiThread ( IReadOnlyList< IReadOnlyList< DreamineThreadInfo > > batch)
inlineprivate

일괄 처리된 스냅샷 중 최신 항목을 UI 행 컬렉션에 차이 병합합니다.

매개변수
batch오래된 것부터 최신 순서로 병합된 스레드 정보 스냅샷 목록입니다.

UI 스레드에서 호출되어야 하며 기존 행을 유지하고 추가·갱신·삭제만 적용합니다.

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

574 {
575 // UI thread. Use only the most recent snapshot in the batch — older
576 // snapshots inside the same batch are stale by definition.
577 if (Volatile.Read(ref _disposed) != 0 || batch.Count == 0)
578 {
579 return;
580 }
581
582 var latest = batch[batch.Count - 1];
583
584 // Track which existing rows are still present.
585 var seen = new HashSet<string>(StringComparer.Ordinal);
586 var anyStructuralChange = false;
587 var selectedRowChanged = false;
588
589 // Apply additions / updates.
590 for (var i = 0; i < latest.Count; i++)
591 {
592 var info = latest[i];
593 seen.Add(info.Name);
594
595 if (_rowsByName.TryGetValue(info.Name, out var existing))
596 {
597 var changed = existing.UpdateFrom(info);
598 if (changed && ReferenceEquals(existing, _selectedThread))
599 {
600 selectedRowChanged = true;
601 }
602 }
603 else
604 {
605 var row = new ThreadInfoRow(info);
606 _rowsByName[info.Name] = row;
607 Threads.Add(row);
608 anyStructuralChange = true;
609 }
610 }
611
612 // Apply removals.
613 for (var i = Threads.Count - 1; i >= 0; i--)
614 {
615 var row = Threads[i];
616 if (!seen.Contains(row.Name))
617 {
618 Threads.RemoveAt(i);
619 _rowsByName.Remove(row.Name);
620
621 if (ReferenceEquals(row, _selectedThread))
622 {
623 SelectedThread = null;
624 }
625
626 anyStructuralChange = true;
627 }
628 }
629
630 if (selectedRowChanged)
631 {
632 // Selected row's underlying fields changed — refresh the detail text.
633 OnPropertyChanged(nameof(SelectedDetailText));
634 }
635
636 if (anyStructuralChange || selectedRowChanged)
637 {
638 RaiseCommandStates();
639 }
640 }

다음을 참조함 : _disposed, _rowsByName, _selectedThread, OnPropertyChanged(), RaiseCommandStates(), SelectedDetailText, SelectedThread, Threads.

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Dispose()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.Dispose ( )
inline

폴링 타이머를 정리하고 진행 중 콜백 종료를 최대 1초 동안 기다립니다.

타이머 정리 및 대기 오류는 UI 종료를 방해하지 않도록 억제합니다.

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

659 {
660 if (Interlocked.Exchange(ref _disposed, 1) != 0)
661 {
662 return;
663 }
664
665 // Wait for an in-flight timer callback when the runtime can signal it.
666 // Dispose can return false when the timer is already disposed or no
667 // callback can be signaled; in that case disposal remains best-effort.
668 // The wait is bounded so UI shutdown cannot hang indefinitely.
669 using var disposed = new ManualResetEvent(false);
670 try
671 {
672 if (_refreshTimer.Dispose(disposed))
673 {
674 disposed.WaitOne(TimeSpan.FromSeconds(1));
675 }
676 }
677 catch
678 {
679 // Suppress on dispose.
680 }
681 }

다음을 참조함 : _disposed, _refreshTimer.

◆ HasSelectedThread()

bool Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.HasSelectedThread ( )
inlineprivate

현재 선택된 스레드 행이 있는지 확인합니다.

반환값
선택 항목이 있으면 true입니다.

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

699=> SelectedThread is not null;

다음을 참조함 : SelectedThread.

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

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnPropertyChanged()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.OnPropertyChanged ( [CallerMemberName] string? propertyName = null)
inlineprivate

지정한 속성 이름으로 PropertyChanged 이벤트를 발생시킵니다.

매개변수
propertyName변경된 속성 이름입니다.

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

874 {
875 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
876 }

다음을 참조함 : PropertyChanged.

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

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnTimerTick()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.OnTimerTick ( object? state)
inlineprivate

스레드 풀 타이머에서 관리자 스냅샷을 가져와 UI 큐에 넣습니다.

매개변수
state타이머 상태 값이며 사용하지 않습니다.

폴링 오류는 UI 프로세스가 종료되지 않도록 억제합니다.

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

530 {
531 // Timer callback runs on a thread-pool thread. Just snapshot and enqueue;
532 // the UI-thread merge happens in ApplySnapshotsOnUiThread.
533 if (Volatile.Read(ref _disposed) != 0)
534 {
535 return;
536 }
537
538 try
539 {
540 var infos = _threadManager.GetThreadInfos();
541 _uiBatch.Enqueue(infos);
542 }
543 catch
544 {
545 // Polling failures must not bring down the UI.
546 }
547 }

다음을 참조함 : _disposed, _threadManager, _uiBatch.

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

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PauseAllThreads()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.PauseAllThreads ( )
inlineprivate

모든 스레드를 일시 정지하고 모니터 데이터를 새로 고칩니다.

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

822 {
823 _threadManager.PauseAll();
824 Refresh();
825 }

다음을 참조함 : _threadManager, Refresh().

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PauseSelectedThread()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.PauseSelectedThread ( )
inlineprivate

선택된 스레드를 일시 정지하고 모니터 데이터를 새로 고칩니다.

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

752 {
753 var name = SelectedThread?.Name;
754 if (name is null) return;
755
756 _threadManager.Pause(name);
757 Refresh();
758 }

다음을 참조함 : _threadManager, Refresh(), SelectedThread.

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RaiseCommandStates()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.RaiseCommandStates ( )
inlineprivate

선택 스레드 제어 명령의 실행 가능 상태 변경을 알립니다.

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

850 {
851 _startCommand.RaiseCanExecuteChanged();
852 _stopCommand.RaiseCanExecuteChanged();
853 _pauseCommand.RaiseCanExecuteChanged();
854 _resumeCommand.RaiseCanExecuteChanged();
855 }

다음을 참조함 : _pauseCommand, _resumeCommand, _startCommand, _stopCommand.

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

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Refresh()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.Refresh ( )
inline

관리자에서 즉시 스냅샷을 가져와 UI 일괄 갱신 큐에 넣습니다.

ViewModel이 정리된 후에는 아무 작업도 하지 않습니다.

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

495 {
496 if (Volatile.Read(ref _disposed) != 0)
497 {
498 return;
499 }
500
501 var infos = _threadManager.GetThreadInfos();
502 _uiBatch.Enqueue(infos);
503 }

다음을 참조함 : _disposed, _threadManager, _uiBatch.

다음에 의해서 참조됨 : DreamineThreadMonitorViewModel(), PauseAllThreads(), PauseSelectedThread(), ResumeAllThreads(), ResumeSelectedThread(), StartAllThreads(), StartSelectedThread(), StopAllThreads(), StopSelectedThread().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ResumeAllThreads()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.ResumeAllThreads ( )
inlineprivate

모든 스레드를 재개하고 모니터 데이터를 새로 고칩니다.

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

836 {
837 _threadManager.ResumeAll();
838 Refresh();
839 }

다음을 참조함 : _threadManager, Refresh().

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ResumeSelectedThread()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.ResumeSelectedThread ( )
inlineprivate

선택된 스레드를 재개하고 모니터 데이터를 새로 고칩니다.

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

769 {
770 var name = SelectedThread?.Name;
771 if (name is null) return;
772
773 _threadManager.Resume(name);
774 Refresh();
775 }

다음을 참조함 : _threadManager, Refresh(), SelectedThread.

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StartAllThreads()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StartAllThreads ( )
inlineprivate

모든 스레드를 시작하고 모니터 데이터를 새로 고칩니다.

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

786 {
787 _threadManager.StartAll();
788 Refresh();
789 }

다음을 참조함 : _threadManager, Refresh().

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StartSelectedThread()

void Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StartSelectedThread ( )
inlineprivate

선택된 스레드를 시작하고 모니터 데이터를 새로 고칩니다.

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

710 {
711 var name = SelectedThread?.Name;
712 if (name is null) return;
713
714 _threadManager.Start(name);
715 Refresh();
716 }

다음을 참조함 : _threadManager, Refresh(), SelectedThread.

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopAllThreads()

async Task Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StopAllThreads ( )
inlineprivate

모든 스레드를 비동기 중지하고 모니터 데이터를 새로 고칩니다.

반환값
전체 스레드 중지 및 새로 고침 작업입니다.

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

808 {
809 await _threadManager.StopAllAsync().ConfigureAwait(true);
810 Refresh();
811 }

다음을 참조함 : _threadManager, Refresh().

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopSelectedThread()

async Task Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StopSelectedThread ( )
inlineprivate

선택된 스레드를 비동기 중지하고 모니터 데이터를 새로 고칩니다.

반환값
선택 스레드 중지 및 새로 고침 작업입니다.

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

735 {
736 var name = SelectedThread?.Name;
737 if (name is null) return;
738
739 await _threadManager.StopAsync(name).ConfigureAwait(true);
740 Refresh();
741 }

다음을 참조함 : _threadManager, Refresh(), SelectedThread.

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

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _dispatcher

readonly IThreadUiDispatcher Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._dispatcher
private

dispatcher 값을 보관합니다.

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

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

◆ _disposed

int Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._disposed
private

disposed 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplySnapshotsOnUiThread(), Dispose(), OnTimerTick(), Refresh().

◆ _pauseAllCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._pauseAllCommand
private

pause All Command 값을 보관합니다.

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

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

◆ _pauseCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._pauseCommand
private

pause Command 값을 보관합니다.

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

다음에 의해서 참조됨 : DreamineThreadMonitorViewModel(), RaiseCommandStates().

◆ _refreshCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._refreshCommand
private

refresh Command 값을 보관합니다.

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

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

◆ _refreshTimer

readonly Timer Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._refreshTimer
private

refresh Timer 값을 보관합니다.

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

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

◆ _resumeAllCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._resumeAllCommand
private

resume All Command 값을 보관합니다.

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

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

◆ _resumeCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._resumeCommand
private

resume Command 값을 보관합니다.

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

다음에 의해서 참조됨 : DreamineThreadMonitorViewModel(), RaiseCommandStates().

◆ _rowsByName

readonly Dictionary<string, ThreadInfoRow> Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._rowsByName = new(StringComparer.Ordinal)
private

rows By Name 값을 보관합니다.

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

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

◆ _selectedThread

ThreadInfoRow? Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._selectedThread
private

selected Thread 값을 보관합니다.

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

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

◆ _startAllCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._startAllCommand
private

start All Command 값을 보관합니다.

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

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

◆ _startCommand

readonly RelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._startCommand
private

start Command 값을 보관합니다.

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

다음에 의해서 참조됨 : DreamineThreadMonitorViewModel(), RaiseCommandStates().

◆ _stopAllCommand

readonly AsyncRelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._stopAllCommand
private

stop All Command 값을 보관합니다.

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

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

◆ _stopCommand

readonly AsyncRelayCommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._stopCommand
private

stop Command 값을 보관합니다.

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

다음에 의해서 참조됨 : DreamineThreadMonitorViewModel(), RaiseCommandStates().

◆ _threadManager

readonly IDreamineThreadManager Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._threadManager
private

◆ _uiBatch

readonly BatchedDispatcher<IReadOnlyList<DreamineThreadInfo> > Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel._uiBatch
private

ui Batch 값을 보관합니다.

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

다음에 의해서 참조됨 : DreamineThreadMonitorViewModel(), OnTimerTick(), Refresh().

◆ DefaultRefreshInterval

readonly TimeSpan Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.DefaultRefreshInterval = TimeSpan.FromMilliseconds(500)
static

폴링 타이머의 기본 새로 고침 간격입니다.

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

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

속성 문서화

◆ PauseAllCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.PauseAllCommand
get

모든 스레드 일시 정지 명령을 가져옵니다.

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

◆ PauseCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.PauseCommand
get

선택 스레드 일시 정지 명령을 가져옵니다.

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

◆ RefreshCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.RefreshCommand
get

즉시 새로 고침 명령을 가져옵니다.

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

◆ ResumeAllCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.ResumeAllCommand
get

모든 스레드 재개 명령을 가져옵니다.

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

◆ ResumeCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.ResumeCommand
get

선택 스레드 재개 명령을 가져옵니다.

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

◆ SelectedDetailText

string??? Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.SelectedDetailText
get

선택 스레드의 상태·코어·통계·오류를 여러 줄 텍스트로 가져옵니다.

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

337 {
338 get
339 {
340 var row = SelectedThread;
341 if (row is null)
342 {
343 return string.Empty;
344 }
345
346 return
347 $"Name: {row.Name}{Environment.NewLine}" +
348 $"Status: {row.Status}{Environment.NewLine}" +
349 $"Priority: {row.Priority}{Environment.NewLine}" +
350 $"Interval: {row.IntervalMs} ms{Environment.NewLine}" +
351 $"Core: {(row.CoreIndex?.ToString() ?? "None")}{Environment.NewLine}" +
352 $"Affinity: {row.UseAffinity}{Environment.NewLine}" +
353 $"Job Count: {row.JobCount}{Environment.NewLine}" +
354 $"Cycle Count: {row.CycleCount}{Environment.NewLine}" +
355 $"Started At: {row.StartedAt}{Environment.NewLine}" +
356 $"Stopped At: {row.StoppedAt}{Environment.NewLine}" +
357 $"Last Error: {row.LastErrorMessage}";
358 }
359 }

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

◆ SelectedThread

ThreadInfoRow? Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.SelectedThread
getset

선택된 스레드 행을 가져오거나 설정하고 상세 텍스트와 명령 상태를 갱신합니다.

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

312 {
313 get => _selectedThread;
314 set
315 {
316 if (ReferenceEquals(_selectedThread, value))
317 {
318 return;
319 }
320
321 _selectedThread = value;
322 OnPropertyChanged();
323 OnPropertyChanged(nameof(SelectedDetailText));
324 RaiseCommandStates();
325 }
326 }

다음에 의해서 참조됨 : ApplySnapshotsOnUiThread(), HasSelectedThread(), PauseSelectedThread(), ResumeSelectedThread(), StartSelectedThread(), StopSelectedThread().

◆ StartAllCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StartAllCommand
get

모든 스레드 시작 명령을 가져옵니다.

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

◆ StartCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StartCommand
get

선택 스레드 시작 명령을 가져옵니다.

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

◆ StopAllCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StopAllCommand
get

모든 스레드 중지 명령을 가져옵니다.

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

◆ StopCommand

ICommand Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.StopCommand
get

선택 스레드 중지 명령을 가져옵니다.

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

◆ Threads

ObservableCollection<ThreadInfoRow> Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.Threads = new()
get

안정적인 행 인스턴스로 유지되는 스레드 정보 컬렉션을 가져옵니다.

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

211{ get; } = new();

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

이벤트 문서화

◆ PropertyChanged

PropertyChangedEventHandler? Dreamine.Threading.Wpf.ViewModels.DreamineThreadMonitorViewModel.PropertyChanged

ViewModel 속성 값이 변경될 때 발생합니다.

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

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


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