Geplante Aufgaben in C# erstellen

Muhammad Zeeshan 15 Februar 2024
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 eine Console Application und benennen Sie sie.
  • Klicken Sie mit der rechten Maustaste auf das Panel Solution Explorer und wählen Sie Manage NuGet Packages.
  • Klicken Sie nun auf die Option Durchsuchen, suchen Sie nach TaskScheduler und installieren Sie es.

    Nuget-Referenz hinzufügen

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:

Notepad-Ausgabe

Taskmanager

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

Verwandter Artikel - Csharp Task