Suchergebnisse

Suchergebnisse 1-7 von insgesamt 7.

  • Benutzer-Avatarbild

    Moin, ich habe ein für mich interessantes Problem mit dem Aufruf von Applicaiton.DoEvents(). Mir ist bewusst, dass das eigentlich ein Böses Spielzeug ist und man es (im CleanCode) gar nicht benutzt/braucht. Jetzt ist es so, dass ich Software von meinem Vorgänger übernommen habe und weiterpflege. Dort wurde in einer Funktion einige Male das besagte Application.DoEvents() aufgerufen. Diese Funktion rufe ich aus einem Nicht-UI-Thread (WorkerThread) auf. Und an der Stelle von Application.DoEvents() …

  • Benutzer-Avatarbild

    Zitat von Haudruferzappeltnoch: „Ich verstehe nicht was du meinst dir wird Form1.ShowDialog angezeigt.“Wenn man die Anwendung mit dem Pause-Zeichen unterbricht, springt der Cursor an die Stelle des Codes, wo er sich zu dem Zeitpunkt befindet.Und bei mir springt er dann zu der Zeile, wo ich den Dialog mit ShowDialog() aufrufe. Macht ja auch irgendwie Sinn, denn der Dialog ist zu dem Zeitpunkt ja auch noch geöffnet. Der grüne Pfeil links am Rand zeigt die Stelle, an dem die Anwendung zu stehen sch…

  • Benutzer-Avatarbild

    Ich versuche mal die Architektur darzustellen. Die Anwendung hat den Standard-UI-Thread (MainForm). Dieser ruft dann einen Dialog auf. Dieser Dialog startet im Shown-Event einen Thread. In diesem Thread wird eine Funktion aufgerufen, wo sich das DoEvents drin befindet. Ja stimmt, das macht Sinn. Ich versuche mir viel durch Dekompilieren der .NET-Bibliotheken zu selbst herzuleiten, nur ist das bei der Angelegenheit glaub ich etwas undurchsichtiger als bspw. zu gucken, wie ein Steuerelement gezeic…

  • Benutzer-Avatarbild

    Zitat von Haudruferzappeltnoch: „versuchen die Funktion im Dialog-Thread laufen zu lassen“Ja, das kann ich malzum Testen so umbauen. Allerdings wollte ich mit dem neuen Thread ja das Blockieren vom UI verhindern. @ErfinderDesRades So wie ich das jetzt verstanden habe, wird das Application.DoEvents also für das UI genutzt. In meinem Fall sieht mir das nach etwas anderem aus. Die Langandauernde Funktion ist bei mir eine Kommunikation mit einem Gerät über USB. Die Schnittstelle bietet Events, wenn …

  • Benutzer-Avatarbild

    Danke erstmal für Deine Aufklärungsarbeit. Die Aussage, dass DoEvents() mit Vorsicht zu genießen ist, wird dann ja mit der Aussage von Microsoft begründet. Dass der aufrufende Thread schlafen gelegt wird, macht durchaus Sinn und wundert mich eigentlich auch nicht. Das mein Thread dann angehalten wird, erklärt imo noch nicht, weshalb er dann im DoEvents() festhängt. Was genau meinst du mit "nur für Windows-Events"? Die systemeigenen Betriebssystem-Events oder die UI-Events einer Form? Zitat von s…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „Wenn es aber keine MessageLoop gibt“Danke für Deine Antwort, daran hatte ich noch gar nicht gedacht! vb-paradise.de/index.php/Attachment/54964/ Die DoEvents-Implementierung anzuschauen ist meine Aufgabe, da werde ich mal nachforschen, weil mich das interessiert. Dann frage ich mich, warum Microsoft diese simple if-Abfrage nicht mit eingebaut hat, vorher zu prüfen, ob es überhaupt ein MessageLoop gibt. Aber ich habe mal gehört, dass da auch nur Menschen arbeiten...

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „nicht die letzte fehlende Kleinigkeit bei .NET“Klar, gar keine Frage. Ist scheinbar gängig, dass man bei so Problemen erstmal die eigene Entwicklung in Frage stellt - aber manchmal sind einfach die Anderen schuld Allerdings habe ich gerade selber mal ein bisschen experimentiert und ein Projekt erstellt, welches nur die Architektur (wie oben beschrieben) wiederspiegelt. Dort kommt er aus dem DoEvents() heraus, obwohl für den WorkerThread kein MessageLoop existiert. Das kann …