다음을 통해 공유


애플리케이션 복구 및 다시 시작 사용

애플리케이션은 처리되지 않은 예외로 인해 또는 애플리케이션이 응답을 중지할 때 애플리케이션이 종료되기 전에 ARR(Application Recovery and Restart)을 사용하여 데이터 및 상태 정보를 저장할 수 있습니다. 요청된 경우 애플리케이션도 다시 시작됩니다.

복구 또는 다시 시작에 등록하면 등록 정보가 프로세스에 추가됩니다. WER(Windows 오류 보고)은 등록 정보를 사용하여 복구 콜백을 호출하고 애플리케이션을 다시 시작합니다. 예를 들어 복구에 등록하고 애플리케이션에 처리되지 않은 예외가 발생하는 경우 WER은 사용자에게 온라인 솔루션 확인, 프로그램 닫기 또는 프로그램 디버깅 옵션을 제공하는 대화 상자를 사용자에게 표시합니다. 사용자가 솔루션에 대한 검사 선택하거나 프로그램을 닫기로 선택하면 WER은 등록된 콜백을 호출하고 애플리케이션에 데이터 및 상태 정보를 저장할 수 있는 기회를 제공합니다. 복구가 완료되면 애플리케이션이 종료됩니다.

다시 시작에 등록하고 애플리케이션에 처리되지 않은 예외가 발생하는 경우 WER은 사용자에게 동일한 대화 상자를 표시하지만 프로그램을 닫는 대신 프로그램을 다시 시작하는 옵션을 제공합니다. 복구 및 다시 시작 모두에 등록하면 복구가 먼저 발생합니다. 그러면 애플리케이션이 종료되고 다시 시작됩니다.

응답하지 않는 애플리케이션은 비슷한 방식으로 처리됩니다. 애플리케이션이 5초 동안 Windows 메시지에 응답하지 않고 사용자가 애플리케이션과 상호 작용하려고 하면 응답하지 않는 것으로 간주됩니다. 사용자에게 제목 표시줄에 (응답하지 않음)이 표시됩니다. 사용자가 시스템 닫기 단추를 클릭하면 WER이 활성화됩니다.

애플리케이션이 응답하지 않거나 처리되지 않은 예외가 발생하기 전에 복구 또는 다시 시작에 등록하거나 등록을 제거해야 합니다. 그러나 복구 콜백에서 다시 시작 명령줄을 변경할 수 있습니다.

복구 또는 다시 시작 등록에 대한 자세한 내용은 다음 topics 참조하세요.

복구 및 다시 시작 기능을 구현하는 샘플은 WinBase\WindowsErrorReporting 폴더에 있는 Windows SDK의 AppRecovery 및 AppRestart 샘플을 참조하세요.