Disable Command Source via System Timer 샘플
업데이트: 2007년 11월
이 샘플에서는 Windows.System.Timers.Timer를 통해 명령 소스를 활성화하거나 비활성화하는 방법을 보여 줍니다.
Windows.System.Timers.Timer는 UI 스레드가 아닌 별도의 스레드에서 실행되기 때문에 UI를 업데이트하려면 몇 가지 추가 작업이 필요합니다. 대부분의 경우 이러한 문제를 해결하는 가장 안정적인 방법은 DispatcherTimer를 사용하는 것입니다. 이 방법은 UI 스레드와 동일한 스레드에서 DispatcherTimer를 실행하기 때문에 더 쉽습니다. 자세한 내용은 Disable Command Source via Dispatcher Timer 샘플을 참조하십시오. 이 샘플에서는 UI 스레드에서 실행되지 않는 클래스를 사용하는 방법을 보여 줍니다.
MenuItem 클래스 및 Button 클래스와 같은 명령 소스는 현재 명령 대상에서 명령을 실행할 수 있는지 여부를 확인하는 명령을 쿼리해야 할 경우를 확인하기 위해 해당 명령 소스가 연결된 RoutedCommand의 CanExecuteChanged 이벤트를 수신합니다. 일반적으로 명령 소스는 명령을 실행할 수 없으면 비활성화되고 명령을 실행할 수 있으면 활성화됩니다. 예를 들어 명령을 실행할 수 없으면 MenuItem이 회색으로 표시됩니다.
CommandManager는 명령 대상과 함께 조건이 변경되었음을 RequerySuggested 이벤트를 통해 RoutedCommand에게 알립니다. RoutedCommand는 명령 소스가 수신하는 CanExecuteChanged 이벤트를 발생시킵니다. 일반적으로 이 알림 메커니즘이 적합하지만 CommandManager가 명령 대상에서 조건이 변경되었음을 알지 못하여 RequerySuggested 이벤트가 발생되지 않고 명령 소스가 RoutedCommand를 쿼리하지 않는 경우도 있습니다. 이러한 경우 CommandManager는 InvalidateRequerySuggested를 호출하여 RequerySuggested 이벤트를 발생시킬 수 있습니다.
이 샘플에서는 현재 시간(초)이 대상 값보다 큰 경우에만 실행될 수 있는 RoutedCommand를 만듭니다. System.Windows.Timers.Timer가 만들어지고 작업을 매초마다 UI 스레드의 Dispatcher에 푸시합니다. 이 작업은 UI 스레드의 Dispatcher에 예약되기 때문에 UI 스레드는 사용자용 UI를 업데이트합니다.
Dispatcher에 푸시된 메서드는 InvalidateRequerySuggested를 호출합니다. 여기에서는 명령 소스가 CanExecuteChanged 이벤트를 받아 명령에서 CanExecute 메서드를 호출할 수 있음을 확인합니다.
명령에 대한 자세한 내용은 명령 개요를 참조하십시오.
이 샘플에서는 Windows Presentation Foundation의 특정 기능에 대해 설명하므로 최선의 응용 프로그램 개발 방법을 따르지 않습니다. WPF(Windows Presentation Foundation) 및 Microsoft .NET Framework 응용 프로그램 개발을 위한 최선의 방법에 대한 자세한 내용은 다음에서 적절한 항목을 참조하십시오.
내게 필요한 옵션 - 액세스 가능성에 대한 유용한 정보
보안 - Windows Presentation Foundation 보안
지역화 - WPF 전역화 및 지역화 개요
샘플 빌드
Windows SDK(소프트웨어 개발 키트)를 설치하고 빌드 환경 명령 창을 엽니다. 시작 메뉴에서 모든 프로그램, Microsoft Windows SDK를 차례로 가리킨 다음 CMD 셸을 클릭합니다.
SDK(소프트웨어 개발 키트) 설명서 등에서 샘플을 하드 디스크 드라이브로 다운로드합니다.
빌드 환경 명령 창에서 샘플을 빌드하려면 샘플의 소스 디렉터리로 이동합니다. 명령 프롬프트에 MSBUILD를 입력합니다.
Microsoft Visual Studio에서 샘플을 빌드하려면 샘플 솔루션이나 프로젝트 파일을 로드한 다음 Ctrl+Shift+B를 누릅니다.
샘플 실행
빌드 환경 명령 창에서 컴파일된 샘플을 실행하려면 샘플 소스 코드 폴더 아래에 있는 Bin\Debug 또는 Bin\Release 폴더의 .exe 파일을 실행합니다.
Visual Studio에서 디버깅 기능을 사용하여 컴파일된 샘플을 실행하려면 F5 키를 누릅니다.
참고 항목
작업
Disable Command Source via Dispatcher Timer 샘플