XspYroX Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Hi Hab einen Service in C# programmiert und dieser besitzt einen Timer, der die Haupt-Aufgabe in einem bestimmten Interval (z.b. alle 15 Minuten) ausführt. Jetzt würde ich gerne einbauen, dass jedes mal, wenn das timer-ereignis ausgeführt wird, eine MySQL-Verbindung aufgebaut wird und der timer-interval aus der DB gelesen wird. Der eingelesene Timer-Interval soll dann der neue Interval für den laufenden Timer werden. Mein Problem ist das Zugriffsrecht: ... public class service : ServiceBase { public static void timerInit() { System.Timers.Timer checkTimer = new System.Timers.Timer(); checkTimer.Enabled = true; checkTimer.Interval = 900000; checkTimer.Elapsed += new System.Timers.ElapsedEventHandler(checkTimer_Elapsed); } public static void checkTimer_Elapsed(object sender,System.Timers.ElapsedEventArgs e) { string[] settings = updateSettings(); checkTimer.Interval = Convert.ToInt32(settings[2]) * 60000; checkScan(); } In der vorletzten Zeile bei "checkTimer.Interval" wird "checkTimer" rot unterstrichen mit der meldung, dass der name "checkTimer" im aktuellen Kontext nicht verfügbar ist. Ich schließe mal auf einen Berechtigungskonflikt, weiß aber nicht, wie ich den beheben soll. Die Google-Ergebnisse havben mir aucg nicht helfen können :/ Jemand ne Idee? ._. LG XspYroX
Klotzkopp Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 checkTimer ist eine lokale Variable innerhalb timerInit. Die ist in anderen Methoden natürlich nicht bekannt. Wenn du sie methodenübergreifend benutzen willst, solltest du einen Member daraus machen.
XspYroX Geschrieben 18. Januar 2013 Autor Geschrieben 18. Januar 2013 Hmmm.... Ich bin noch etwas neu in der C#-Geschichte. Hab jetzt online bei "Member C#" nur Klassen gefunden. Muss ich dafür Klassen erstellen? Oder geht das auch ohne? Wenns kein großer Aufwand ist, könnt ihr mir nen Code-Snippet geben? Aber danke schonmal für die Hilfe =) LG XspYroX
Klotzkopp Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Ich bin noch etwas neu in der C#-Geschichte.Dann solltest du dringend ein paar Grundlagen lernen, bevor du anfängst, Dienste zu entwickeln. Hab jetzt online bei "Member C#" nur Klassen gefunden. Muss ich dafür Klassen erstellen? Oder geht das auch ohne?Du hast schon eine Klasse. Du hast sie service genannt: public class service
lbm1305AtWork Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Hab jetzt online bei "Member C#" nur Klassen gefunden. Member (C#-Programmierhandbuch)
uenetz Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Ich vermute einmal, dass nicht nur eine Membervariable benötigt wird, sondern auch ein Restart des Timers nach Änderung der Konstanten (mInterval)
lbm1305AtWork Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Ich vermute einmal, dass nicht nur eine Membervariable benötigt wird, sondern auch ein Restart des Timers nach Änderung der Konstanten (mInterval) Würde da der Timer nicht als eintige Membervariable reichen?
uenetz Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Würde da der Timer nicht als eintige Membervariable reichen? Wie soll der Timer die Änderung des Wertes von Interval mitbekommen?
lbm1305AtWork Geschrieben 18. Januar 2013 Geschrieben 18. Januar 2013 Wie soll der Timer die Änderung des Wertes von Interval mitbekommen? Wenn das Timer-Objekt als Klassenmember definiert ist, ist das sicherlich kein Problem. Ansonsten gibt es noch Events.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden