Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben
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

Geschrieben

Ich vermute einmal, dass nicht nur eine Membervariable benötigt wird, sondern auch ein Restart des Timers nach Änderung der Konstanten (mInterval)

Geschrieben
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?

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...