hintergrund-Arbeiter-mit-windows-Dienst
Ich bin momentan dabei, einen windows service in Visual Studio 2010 mit C# und ich habe einige Methoden, wie Add
, Multiply
und andere, die ich Stelle in der onStart
Methode. Nun, ich möchte diese Methoden ausführen, nachdem Sie alle fünf Minuten. Also, wie würde ein background worker-Prozess hilft mir dabei?
protected override void OnStart(string[] args)
{
add(); //yes, it doesn't have parameters
}
Ich denke, ein
okay danke, lassen Sie mich gehen Sie vor mit Timer dann
Wahrscheinlich, möchten Sie vielleicht zu beziehen - programmers.stackexchange.com/questions/80997/...
Wenn Sie gehen zu müssen genaue Präzision (z.B. Die Methode ausgeführt werden soll, genau nach n Minuten), versuchen Quartz.NET: google.co.in/...
Ich glaube, piyush ist dieses tun in einem Windows-Dienst, so kann er wollen, verwenden Sie die System.Threading.Timer
System.Timers.Timer
ist wahrscheinlich hilfreicher sein. Ein background worker ist nützlich für die Arbeit in einem anderen thread, ohne zu blockieren den aktuellen (wie den UI-thread).okay danke, lassen Sie mich gehen Sie vor mit Timer dann
Wahrscheinlich, möchten Sie vielleicht zu beziehen - programmers.stackexchange.com/questions/80997/...
Wenn Sie gehen zu müssen genaue Präzision (z.B. Die Methode ausgeführt werden soll, genau nach n Minuten), versuchen Quartz.NET: google.co.in/...
Ich glaube, piyush ist dieses tun in einem Windows-Dienst, so kann er wollen, verwenden Sie die System.Threading.Timer
InformationsquelleAutor Piyush Sardana | 2012-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den timer, den richtigen Weg zu gehen. Ich habe eine leicht verbesserte version, der kümmert sich um die Abschaltung des Timers in der OnStop-Methode.
in Ihrem Programm.cs, ich würde Folgendes tun, um das Debuggen einfacher:
Dann in die Service1.cs-code:
Durch die Einstellung der #DEBUG var in Ihre Compiler-Optionen, die Sie sich erlauben, um den code auszuführen
als ein Programm, und dann, wenn Sie bereit sind, testen Sie Ihr shutdown-Logik, brechen einfach alle und
set fertig auf true. Ich habe mit dieser Methode seit Jahren mit viel Erfolg.
Als Kommentare im code, wenn Sie dabei sind etwas langwierig in Ihrer timer-Ereignis, dann möchten Sie vielleicht, um es überwachen von OnStop um sicherzustellen, dass es genug Zeit hat, wenn beim Herunterfahren in der Mitte der Dinge.
InformationsquelleAutor Robb Sadler
Wrap up diese Funktion in eine Klasse und erstellen Sie ein System.Timer.Timer() in dieser Klasse und nennen diese Funktion, timer. Rufen Sie die Start () - Funktion des sample-Klasse NewClass auf
OnStart
des Dienstes.InformationsquelleAutor Romil Kumar Jain
Andere Lösung mit der Backgroundworker-Klasse:
InformationsquelleAutor vanos