2x verschiedene Timer benötigt

  • VB.NET
  • .NET (FX) 4.0

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von tragl.

    2x verschiedene Timer benötigt

    Hallo zusammen.

    Ich hab' mich mit dem Thema leider noch nie auseinandergesetzt, aber ich benötige für mein Projekt nun 2 verschiedene Timer:
    Timer 1 : Soll dafür sorgen, dass die Anwendung immer um 17 Uhr beendet wird
    Timer 2 : Soll einen Datensatz im DataSet auf "True" überprüfen (im wegen mir 10-Sekunden-Intervall) - damit will ich bezwecken, dass ich als Admin den Haken für True setze und die Anwendung sich dann
    mit einer entsprechenden Meldung bei allen die die grad offen haben schließt. Damit kann ich kritische Updates schneller einspielen und nicht erst abends ab 17 Uhr.

    Wie stelle ich das am sinnvollsten an?

    LG
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Indem du die beiden Timer in dein Projekt einbaust. Im Tick event des einen Prüfen ob es 17:00 Uhr (oder später) ist. Im Tick event des anderen den Datensatz laden und entsprechend prüfen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Moment. Unter der gedanklichen Voraussetzung, dass es hier um eine Netzwerk-basierte Anwendung geht: Dazu müsste aber bei allen Arbeitsplätzen das DataSet auch seine Daten alle x Sekunden neu laden, um dann nachzuschauen, ob sich das Programm beenden soll. Wenn das Absicht ist, ok. Ansonsten hätte ich das über TCP/IP gemacht: An jedem Benutzerplatz sitzt ein Listener/Zuhörer, der mit dem Server verbunden ist und zu einem gewissen Zeitpunkt sendet der Server eben ein Abschaltsignal, welches der Listener dann umsetzt. Das Polling ganzer Datensätze wegen eines Signals scheint mir etwas Overkill.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Unter einer ähnlichen Anforderung habe ich in der Anwendung einen 30-Sekunden-Timer, der überprüft, ob sich die zentrale Setup-Datei verändert hat.
    Wenn ja, wird das Setup neu geladen (XML-Deserialisierung).
    Damit kann ich auch im laufenden Betrieb allen aktiven Anwendungen andere Parameter unterjubeln.
    Ein Parameter davon ist UpdatePending.
    Wenn der gesetzt ist, wird die Anwendung beendet (falls der Benutzer nicht interveniert).
    Wenn alle Anwendungen beendet sind, kann der Update anlaufen.

    tragl schrieb:

    Ich benötige für mein Projekt nun 2 verschiedene Timer
    Das kannst du mit einem Timer erschlagen.
    Du kannst auch im 30-Sekunden-Timer abfragen, ob die 17:00 Uhr erreicht sind.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    VaporiZed schrieb:

    Unter der gedanklichen Voraussetzung, dass es hier um eine Netzwerk-basierte Anwendung geht


    Jain. Die Anwendung liegt schlicht zentral auf einem Netzlaufwerk samt Datenbank. Die User greifen alle auf die selbe Anwendungsdatei zu (über eine entspr. Verknüpfung auf dem jeweiligen Desktop).
    Ist nicht optimal aber derzeit (weil Testphase) nicht anders lösbar. Ich brauch ja dann nicht das komplette DataSet reloaden, sondern nur wegen mir eine klitze kleine Tabelle, wo nur der eine Datensatz drin steckt.

    petaod schrieb:

    Das kannst du mit einem Timer erschlagen.


    Hast du da einen Ansatz für mich? Hab mit Timern noch nie gearbeitet und bei einer schnellen Google-Suche gestern abend hat mir der Kopf geraucht, hab da nicht wirklich durchgeblickt. Hinzu kommt, dass ich
    nicht mit Threading arbeiten kann, da .NET 4.0 (wird benötigt weil es noch ein paar Win7-Rechner bei uns gibt, die kein 4.5 installiert haben) :(
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    ? Du ziehst Dir ne Timer-Komponente auf's Form, stellst ein, alle wieviele Millisekunden er ticken soll und dann im Tick-EventHandler was passieren soll. Fertig.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Du ziehst Dir ne Timer-Komponente auf's Form, stellst ein, alle wieviele Millisekunden er ticken soll und dann im Tick-EventHandler was passieren soll


    Danke, hab's jetzt mal so zum Testen gemacht - funzt :thumbsup:
    Der Rest ist ja jetzt Fleißarbeit (bzgl. dem Datensatz) aber das bekomm' ich ja nu hin. Wusste nicht, dass das mit dem Timer so einfach ist :P

    VB.NET-Quellcode

    1. Private Sub mainTimer_Tick(sender As Object, e As EventArgs) Handles mainTimer.Tick
    2. Dim appQuitTime = DateTime.Parse("14:49")
    3. If DateTime.Now >= appQuitTime Then
    4. Me.Close()
    5. End If
    6. End Sub
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    tragl schrieb:

    Wusste nicht, dass das mit dem Timer so einfach ist
    nach 457 Posts im Forum :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Muss man auch nicht, geht auch alles zur Laufzeit...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @tragl Du hast Dir noch niemals die in den Designer-Tools angebotenen Controls und Components angesehen :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    ich muss zu meiner Schande gestehen, dass ich nur die gängigsten Sachen kenn (textbox, listbox etc.)
    aber ich bin ja immernoch Neuling und lern gerne dazu :) Ich denke künftig werd' ich dann wohl erstmal da rein schauen.

    Ist ja wie mit dem ToolTip vor Kurzem, das war ja auch schnell und einfach aus der Toolbox zu lösen
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup: