C#으로 Windows Service 만들기 (4)

개요



마지막 기사 C#으로 Windows Service 만들기 (3) 계속.
서비스 조작이나 파와마네계의 이벤트 핸들러의 구현을 실시합니다.

환경



Windows 10
Visual Studio 2017 커뮤니티

절차



서비스 조작/파와마네계 이벤트 핸들러 추가



서비스 관리 툴로 일시정지/재개했을 때나, PC가 서스펜드/리줌했을 때 등에, 서비스측에서 다른 시스템과의 제휴나 파일 보존 등의 처리를 하고 싶을 때가 많이 있습니다.
그렇다면 그 때의 이벤트를 받는 처리를 만듭니다.

ServiceBase 클래스의 파생 클래스(기본이면 Service1.cs라는 파일. 내 프로젝트에서는 ServiceTest.cs)를 디자이너에서 엽니다.
⇒ 솔루션 탐색기에서 해당 파일을 더블 클릭합니다.
그런 다음 속성 탭을 표시합니다.



다음 네 가지 속성을 True로 설정합니다.
· CanHandlePowerEvent
· CanPauseAndContinue
· CanShutdown
· CanStop

다음으로 이벤트 핸들러를 설명합니다.
ServiceBase 클래스의 파생 클래스 코드를 표시합니다.
소스 코드에서 마우스 오른쪽 버튼 메뉴를 표시하고 빠른 동작 및 리팩토링을 선택합니다.



아래와 같은 메뉴가 표시되므로 [오버라이드 생성...]을 선택합니다.


다음과 같은 대화상자가 표시되므로,
· OnContinue()
· OnPause ()
· OnPowerEvent ()
· OnShutdown()
확인란을 선택하고 확인을 클릭합니다.



그러면 재정의된 이벤트 핸들러가 자동으로 추가됩니다.


다음 번에는 여기에 로그 출력 처리를 추가하겠습니다.

좋은 웹페이지 즐겨찾기