Hallo.
ich möchte verschiedene Tasks in unterschiedlichen Abständen ausführen lassen. Ich möchte diese aber auch von außen stoppen bzw. löschen können. Es macht also an sich Sinn eine Klasse dafür zu erstellen.
Ich hab dazu mal dieses Tutorial befolgt: http://www.infoworld.com/article/3063560/application-development/building-your-own-task-scheduler-in-c.html
Da wird einem der Code der Klasse ja direkt aufm Teller serviert. Die hab ich bei mir im Projekt nun auch eingerichtet, aber was soll man damit anfangen, das kann doch noch nicht fertig sein.
Man kann Tasks hinzufügen und die werden alle in einem neuen Thread durchgearbeitet. Aber wo kann ich den Intervall einstellen, laufen die Tasks überhaupt wiederholt? Ich weiß auch nicht, ich hab das Gefühl das ist nicht das, wonach ich suche.
Ich würds am liebsten selbst machen.
var timer = new System.Threading.Timer((e) =>
{
Console.WriteLine("################ Job executed #############");
}, null, 0, 5000);
Das hier funktioniert schon mal gut und das würde ich gerne auf eine Klasse ausweiten. Dort könnt ich eine Collection an solchen Timern halten und beendet würde ich die wahrscheinlich, indem ich den timer = null setze oder? Dann denke ich mir aber wieder, wofür gibt es einen TaskScheduler in C#, wenn ich den nicht nutze 😦
Hoffe das war nicht zu wirr und mir kann jmd helfen 😃
Haste nur den Code des Links angeschaut, ohne die Erklärung durchzulesen? 😉
Ein Task Scheduler hat nichts mit Scheduled Tasks zutun, auch wenn die Namen ähnlich lauten.
Tasks in C# sind eine Abstraktion von Threads.
und beendet würde ich die wahrscheinlich, indem ich den timer = null setze oder?
Beim Blick in die Doku oder die Methodenauflistung wirst Du sehr schnell eine Stop() Methode finden.
Zudem sollte - wie in der Doku steht - der Timer nicht einfach genullt sondern auch disposed werden.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi...
Schau dir mal Quarz.net an http://www.quartz-scheduler.net
Ist ein Task/Job - Scheduler der eigentlich genau das kann was du versuchst selber zu programmieren.
lg
Hallo seehashtag,
du kannst auch die betriebssystemeigenen Task-Scheduler (Aufgabenplaner) verwenden. Die sind für so etwas auch da. Windows -> Aufgabenplanung, Linux -> Cron
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Danke für eure Antworten! Ich arbeite mich gerade in Quartz.NET ein und komme ganz gut damit klar 😃 Ich denke ich bleibe bei dieser Variante.