Geplante Aufgaben in C# erstellen
Der folgende Artikel führt Sie durch das Planen von Aufgaben mit der Programmiersprache C#.
C#-Taskplaner
Im folgenden Beispiel verwenden wir Windows Task Scheduler
, eine Komponente, die automatisch Aufgaben zu vordefinierten Zeiten oder als Reaktion auf ausgelöste Ereignisse ausführt. Aufgaben können so geplant werden, dass sie zu verschiedenen Zeiten ausgeführt werden, z. B. wenn der Computer hochfährt oder wenn sich ein Benutzer anmeldet.
Mit dem Aufgabenplaner können Sie Ereignisse einrichten, die den Start vordefinierter Aufgaben auslösen und zu bestimmten Zeiten und Daten Befehle ausführen und Skripte ausführen.
Referenzpaket NuGet
hinzufügen
Wir werden das Paket TaskScheduler
für Windows-Aufgabenplanungsvorgänge hinzufügen. Befolgen Sie dazu die folgenden Schritte.
-
Öffnen Sie
Visual Studio
, erstellen Sie eineConsole Application
und benennen Sie sie. -
Klicken Sie mit der rechten Maustaste auf das Panel
Solution Explorer
und wählen SieManage NuGet Packages
. -
Klicken Sie nun auf die Option
Durchsuchen
, suchen Sie nachTaskScheduler
und installieren Sie es.
Importieren Sie nach dem Hinzufügen des Pakets die folgenden Bibliotheken:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32.TaskScheduler;
Wir werden TaskService
initiieren, um den Task-Dienst der lokalen Maschine zu starten.
using (TaskService ts = new TaskService()) {}
Erstellen Sie nun eine neue Aufgabendefinition als td
und geben Sie Merkmale wie Autor oder Beschreibung an.
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Author = "Muhammad Zeeshan";
td.RegistrationInfo.Description = "Open Notepad++ for working";
Wir müssen sicherstellen, dass wir eine Aktion eingerichtet haben, damit Notepad++ gestartet wird, sobald der Trigger ausgelöst wird.
td.Actions.Add(new ExecAction(@"C:\Program Files\Notepad++\notepad++.exe"));
Danach müssen wir den Job im primären Ordner registrieren.
ts.RootFolder.RegisterTaskDefinition(@"My Scheduled Notepad++ Task", td).Run();
Zuletzt können wir ein Intervall des unten gezeigten Tages einfügen. Planen Sie den Job so, dass er jeden zweiten Tag um diese Zeit beginnt, indem Sie einen Trigger festlegen.
td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });
Vollständiger Quellcode:
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();
}
}
}
}
Ausgang:
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