C#에서 예약된 작업 만들기
다음 문서에서는 프로그래밍 언어 C#을 사용하여 작업 예약에 대해 안내합니다.
C# 작업 스케줄러
다음 예에서는 미리 정의된 시간에 또는 트리거된 이벤트에 대한 반응으로 작업을 자동으로 실행하는 구성 요소인 Windows 작업 스케줄러
를 활용합니다. 작업은 컴퓨터가 부팅될 때나 사용자가 체크인할 때와 같이 다양한 시간에 실행되도록 예약할 수 있습니다.
작업 스케줄러를 사용하면 미리 정의된 작업의 시작을 트리거하고 특정 시간과 날짜에 명령을 실행하고 스크립트를 실행하는 이벤트를 설정할 수 있습니다.
NuGet
참조 패키지 추가
Windows 작업 예약 작업을 위한 TaskScheduler
패키지를 추가합니다. 그렇게 하려면 아래 단계를 따르십시오.
-
Visual Studio
를 열고Console Application
을 만들고 이름을 지정합니다. -
Solution Explorer
패널을 마우스 오른쪽 버튼으로 클릭하고NuGet 패키지 관리
를 선택합니다. -
이제
찾아보기
옵션을 클릭하고TaskScheduler
를 검색하여 설치합니다.
패키지를 추가한 후 다음 라이브러리를 가져옵니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32.TaskScheduler;
로컬 시스템의 태스크 서비스를 시작하기 위해 TaskService
를 시작합니다.
using (TaskService ts = new TaskService()) {}
이제 td
로 새 작업 정의를 만들고 작성자 또는 설명과 같은 특성을 제공합니다.
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Author = "Muhammad Zeeshan";
td.RegistrationInfo.Description = "Open Notepad++ for working";
트리거가 트리거되면 Notepad++가 실행되도록 작업을 설정했는지 확인해야 합니다.
td.Actions.Add(new ExecAction(@"C:\Program Files\Notepad++\notepad++.exe"));
그런 다음 기본 폴더에 작업을 등록해야 합니다.
ts.RootFolder.RegisterTaskDefinition(@"My Scheduled Notepad++ Task", td).Run();
마지막으로 아래와 같이 하루의 간격을 삽입할 수 있습니다. 트리거를 설정하여 격일로 이 시간에 작업이 시작되도록 예약합니다.
td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });
완전한 소스 코드:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32.TaskScheduler;
namespace ScheduledTasksbyZeeshan {
class Program {
static void Main(string[] args) {
using (TaskService ts = new TaskService()) {
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Author = "Muhammad Zeeshan";
td.RegistrationInfo.Description = "Open Notepad++ for working";
td.Actions.Add(new ExecAction(@"C:\Program Files\Notepad++\notepad++.exe"));
ts.RootFolder.RegisterTaskDefinition(@"My Scheduled Notepad++ Task", td).Run();
}
}
}
}
출력:
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn