Patcher patcht nur teilweise

  • Muss ich mal heute Abend schauen, ob ich's hin bekomm. So ganz blick ichs gerade noch nicht :D
    Danke euch Jungs :)

    Zeitriss, wegen GUICtrlRead($progr_dateidown) <> $FileProgress schau ich :)

    • Offizieller Beitrag

    Wenn Du die Funktion "_patch" über ein GUI-Event aufrufst, dann ist GUIGetMsg so lange gesperrt (reagiert nicht auf weitere Events), wie die Funktion abgearbeitet wird.
    Das heißt, dass Du das Patch-Konzept ganz auf eine nicht blockierende Funktion abändern musst, wenn Du weiter auf die GUI-Events reagieren willst.

    Und noch ein Hinweis zu INetGet: Wenn Du den Background-Modus benutzt, bekommst Du ein Handle zurück. Dieses muss unbedingt nach dem Download mit InetClose geschlossen werden. Ansonsten liegt noch ein Lock auf der Datei.

  • Hallo @Oscar,

    ja ich möchte eig. noch auf Gui-Events reagieren können. Aber ich hab keine Ahnung wie ich so eine nicht blockierende Funktion aufbauen muss, um ehrlich zu sein.

    Okey aber das mit dem INetGet funktioniert einwandfrei, auch ohne Close. Wenn du dir meinen Code anschaust, muss das an die Stelle?

    • Offizieller Beitrag

    Ich habe mir mal die Mühe gemacht und einen nicht blockierenden Downloader geschrieben (siehe unten).
    Ich verwende hier allerdings den OnEvent-Modus, weil dort die Schleifengeschwindigkeit nicht von Mausbewegungen/Tastatureingaben abhängt ,wie das im MessageLoop-Modus der Fall wäre.
    Der wesentliche Unterschied zu Deinem Script ist, dass ich die Event-Funktionen "sofort" wieder verlasse. Damit bleibt die GUI bedienbar.
    Die Downloads finden in der Endlosschleife (while true) statt und auch diese wird nicht blockiert durch weitere Schleifen, sondern es werden nur die anfallenden Daten ausgewertet.
    Ich hoffe, dass das einigermassen verständlich ist!?