DreamineVMS 1.0.0.0
Windows PC의 RTSP·USB 카메라 영상을 HLS로 변환해 원격 CCTV Viewer에 전달하는 데스크톱 에이전트입니다.
로딩중...
검색중...
일치하는것 없음
DreamineVMS.ViewModels.AsyncRelayCommand 클래스 참조sealed

더 자세히 ...

DreamineVMS.ViewModels.AsyncRelayCommand에 대한 상속 다이어그램 :
DreamineVMS.ViewModels.AsyncRelayCommand에 대한 협력 다이어그램:

Public 멤버 함수

 AsyncRelayCommand (Func< Task > execute, Func< bool >? canExecute=null)
bool CanExecute (object? parameter)
async void Execute (object? parameter)
void RaiseCanExecuteChanged ()

이벤트

EventHandler? CanExecuteChanged

Private 속성

readonly Func< Task > _execute
readonly? Func< bool > _canExecute
bool _isRunning

상세한 설명

비동기 ICommand 구현입니다.

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

생성자 & 소멸자 문서화

◆ AsyncRelayCommand()

DreamineVMS.ViewModels.AsyncRelayCommand.AsyncRelayCommand ( Func< Task > execute,
Func< bool >? canExecute = null )
inline

AsyncRelayCommand 클래스의 새 인스턴스를 초기화합니다.

매개변수
execute실행할 비동기 작업입니다.
canExecute실행 가능 여부를 반환하는 조건입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

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

1018 {
1019 _execute = execute ?? throw new ArgumentNullException(nameof(execute));
1020 _canExecute = canExecute;
1021 }

다음을 참조함 : _canExecute, _execute.

멤버 함수 문서화

◆ CanExecute()

bool DreamineVMS.ViewModels.AsyncRelayCommand.CanExecute ( object? parameter)
inline

Can Execute 조건을 확인합니다.

매개변수
parameterparameter에 사용할 object? 값입니다.
반환값
Can Execute 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

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

1057=> !_isRunning && (_canExecute?.Invoke() ?? true);

다음을 참조함 : _canExecute, _isRunning.

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

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

◆ Execute()

async void DreamineVMS.ViewModels.AsyncRelayCommand.Execute ( object? parameter)
inline

Execute 작업을 수행합니다.

매개변수
parameterparameter에 사용할 object? 값입니다.

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

1076 {
1077 if (!CanExecute(parameter))
1078 {
1079 return;
1080 }
1081
1082 try
1083 {
1084 _isRunning = true;
1085 RaiseCanExecuteChanged();
1086
1087 // WPF UI 컨텍스트를 유지하기 위해 ConfigureAwait(false) 사용 안 함.
1088 await _execute();
1089 }
1090 catch (Exception ex)
1091 {
1092 // 비동기 명령의 미처리 예외가 UI 스레드로 던져져 앱이 죽는 것을 막습니다.
1093 System.Diagnostics.Debug.WriteLine($"[AsyncRelayCommand] {ex}");
1094 }
1095 finally
1096 {
1097 _isRunning = false;
1098 RaiseCanExecuteChanged();
1099 }
1100 }

다음을 참조함 : _execute, _isRunning, CanExecute(), RaiseCanExecuteChanged().

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

◆ RaiseCanExecuteChanged()

void DreamineVMS.ViewModels.AsyncRelayCommand.RaiseCanExecuteChanged ( )
inline

CanExecuteChanged 이벤트를 UI Dispatcher에서 발생시킵니다.

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

1111 {
1112 System.Windows.Threading.Dispatcher? dispatcher =
1113 System.Windows.Application.Current?.Dispatcher;
1114
1115 if (dispatcher is null || dispatcher.CheckAccess())
1116 {
1117 CanExecuteChanged?.Invoke(this, EventArgs.Empty);
1118 return;
1119 }
1120
1121 dispatcher.InvokeAsync(() => CanExecuteChanged?.Invoke(this, EventArgs.Empty));
1122 }

다음을 참조함 : CanExecuteChanged.

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

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

멤버 데이터 문서화

◆ _canExecute

readonly? Func<bool> DreamineVMS.ViewModels.AsyncRelayCommand._canExecute
private

can Execute 값을 보관합니다.

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

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

◆ _execute

readonly Func<Task> DreamineVMS.ViewModels.AsyncRelayCommand._execute
private

execute 값을 보관합니다.

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

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

◆ _isRunning

bool DreamineVMS.ViewModels.AsyncRelayCommand._isRunning
private

is Running 값을 보관합니다.

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

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

이벤트 문서화

◆ CanExecuteChanged

EventHandler? DreamineVMS.ViewModels.AsyncRelayCommand.CanExecuteChanged

Can Execute Changed 상황이 발생할 때 알립니다.

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

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


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