Püfen ob Sub in Form aktiv

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Püfen ob Sub in Form aktiv

    Hallo,

    ich bin mir nicht ganz sicher ob ich nen Denkfehler habe, aber ist es möglich aus einem MDIParent heraus abzufragen ob eine andere Form in der Application aktiv oder idle ist? Sprich eine Sub gerade abgearbeitet wird oder eben nicht.
    Hintergrund ist, dass ich eine Benutzeranmeldung habe und bei bestimmter Idle Zeit soll diese aktiviert werden. Dies soll aber nur passieren wenn das Programm gerade nicht arbeitet.
    Kann mir da wer helfen?

    Gruß
    Die einfachste (aber bestimmt nicht gerade eleganteste) Methode wäre, wenn am Anfang jeder zeitintensiven Sub ein Flag (z.B. isBusy) gesetzt wird, welches am Ende wieder auf False gesetzt wird. Dies könnte dann vom Parent oder per EventRaising abgefragt werden.

    Im Parent wird doch bestimmt ein Timer dafür sorgen, dass die Anmeldung aufploppt. Und wenn im Parent eine krasse Sub abgearbeitet wird, wird vorher der Timer gestoppt und später wieder gestartet.

    EDIT: Err. Moment mal. Was ist Parent und was Child? Ist Benutzeranmeldung = Parent oder Child?

    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.
    Benutzeranmeldung ist eine einfach Form die über form.showdialog() aufgerufen wird. Du hast das mit dem Timer im Parent schon richtig erkannt und im Parent selber laufen keine zeitintensiven Subs. Das mit nem Flag habe ich auch schon überlegt. Da sind aber viele zeitintesive Subs...deswegen habe ich gehofft das anders abfragen zu können.
    @kinobi Wenn beide Routinen im GUI-Thread laufen, sollte eigentlich nix passieren.
    Kannst Du einen Zustand erzeugen, in dem das knallt?
    Poste dazu die Beschreibung.
    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!
    Problematisch ist, dass sobald die Benutzeranmeldung mit .ShowDialog() aufgerufen wird, wird der Rest des Programms angehalten und das soll so nicht sein. Es ist auch nicht vorgesehen, dass der Benutzer wechseln darf während bestimmte Subs noch laufen. Offensichtlich werde ich es wohl mit nem Flag lösen müssen.
    Ums richtig zu verstehen:
    Deine User sollen von Zeit zu Zeit ihre Benutzedaten neu eingeben?
    Und nicht, während dein Proggi mit einer Stress-Aufgabe ausgelastet ist (eingefroren)?
    Sondern in dem Falle erst danach?

    Ist komisch, weil wenn du einen einfachen Timer benutztest, zum Öffnen des Re-Logins, dann wäre der während der Stress-Aufgabe eh blockiert und könnte nicht dazwischenfunken.
    Die User sollen nach einer bestimmten Windows Idle Zeit (das kann ich abfragen) Ihre Nutzerdaten neu eingeben...Soweit ist es richtig. Die Aufgaben die dann noch laufen können (das Programm ist dabei nicht blockiert) machen bestimmte benutzerbezogene Einträge in einer Datenbank. Für diese Einträge wird immer der aktuell angemeldete Benutzer verwendet. Deswegen darf der Nutzer mittendrin nicht wechseln. Diesen Fall hatte ich einfach nicht bedacht und deswegen suche ich nun nach so einer Lösung. Aber offensichtlich gibt es dafür, bis auf Flags, keine triviale Lösung. :)
    ich glaub, das musste erstmal auskonzipieren.
    Was soll denn passieren, wenn sich während Aufgabe-Laufzeit ein anderer User dran setzt?

    Wird der abgelehnt trotz gültiger Anmeldung?
    Kann der sich garnet anmelden?
    Wird da Proggi wg. Missbrauch gestoppt?

    Oder was passiert, wenn ein User nach diesem Iddle-Dingens sich nicht anmeldet?