장기 실행 계산 기능이 있는 단일 스레드 응용 프로그램 샘플

업데이트: 2007년 11월

이 샘플에서는 장기 작업을 수행하는 단일 스레드 응용 프로그램에서 UI가 응답하지 않는 것을 방지하는 방법을 보여 줍니다.

이 샘플에는 클릭했을 때 소수를 계산하는 Button이 있습니다. 이 계산은 이론적으로 끝이 없기 때문에 이벤트 처리기는 단순히 루프로 이동하여 소수 계산을 시작하고, 해당 호출에서는 절대로 반환하지 않고 UI 스레드는 중지됩니다.

이를 방지하기 위해 샘플에서는 BeginInvoke를 호출하여 UI 스레드의 Dispatcher에 비동기 작업을 대기시킵니다. 큐에 푸시된 작업은 UI 스레드가 SystemIdle 상태일 때 숫자 하나를 처리한 다음 다른 호출을 디스패처로 푸시하여 다음에 UI 스레드가 유휴 상태가 됐을 때 다음 숫자를 처리합니다.

이렇게 함으로써 UI 스레드는 항상 다음 숫자를 계산하는 것보다 우선하며 UI가 중단되지 않도록 합니다.

이 샘플에 대한 자세한 내용은 스레딩 모델 항목을 참조하십시오,

이 샘플에서는 Windows Presentation Foundation의 특정 기능에 대해 설명하므로 최선의 응용 프로그램 개발 방법을 따르지 않습니다. WPF(Windows Presentation Foundation) 및 Microsoft .NET Framework 응용 프로그램 개발을 위한 최선의 방법에 대한 자세한 내용은 다음에서 적절한 항목을 참조하십시오.

내게 필요한 옵션 - 액세스 가능성에 대한 유용한 정보

지역화 - WPF 전역화 및 지역화 개요

성능 - WPF 응용 프로그램 성능 최적화

보안 - Windows Presentation Foundation 보안

Download sample

샘플 빌드

  • 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 System Timer 샘플

개념

스레딩 모델