Crear tareas programadas en C#
El siguiente artículo lo guiará en la programación de tareas usando el lenguaje de programación C#.
Programador de tareas C#
En el siguiente ejemplo, utilizaremos el Programador de tareas de Windows
, un componente que ejecuta tareas automáticamente en momentos predefinidos o como reacción a eventos activados. Las tareas se pueden programar para ejecutarse en varios momentos, como cuando la computadora se inicia o cuando un usuario se registra.
El programador de tareas le permite configurar eventos que activarán el lanzamiento de tareas predefinidas y ejecutarán comandos y ejecutarán scripts en determinadas horas y fechas.
Agregue el paquete de referencia NuGet
Agregaremos el paquete TaskScheduler
para las operaciones de programación de tareas de Windows. Para hacer eso, siga los pasos a continuación.
-
Abra
Visual Studio
, cree unaAplicación de consola
y asígnele un nombre. -
Haga clic derecho en el panel
Explorador de soluciones
y seleccioneAdministrar paquetes NuGet
. -
Ahora haga clic en la opción
Examinar
, busqueTaskScheduler
e instálelo.
Después de agregar el paquete, importe las siguientes bibliotecas:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32.TaskScheduler;
Iniciaremos TaskService
para iniciar el servicio de tareas de la máquina local.
using (TaskService ts = new TaskService()) {}
Ahora, cree una nueva definición de tarea como td
y proporcione características como el autor o la descripción.
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Author = "Muhammad Zeeshan";
td.RegistrationInfo.Description = "Open Notepad++ for working";
Necesitamos asegurarnos de tener una acción configurada para que Notepad ++ se inicie una vez que se active el disparador.
td.Actions.Add(new ExecAction(@"C:\Program Files\Notepad++\notepad++.exe"));
Después de eso, debemos registrar el trabajo en la carpeta principal.
ts.RootFolder.RegisterTaskDefinition(@"My Scheduled Notepad++ Task", td).Run();
Por último, podemos insertar un intervalo del día que se muestra a continuación. Programe el trabajo para que comience cada dos días a esta hora configurando un disparador.
td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });
Código fuente completo:
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();
}
}
}
}
Producción:
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