Lieber Thomas,
vielen Dank für die besonderen Hinweise, da musste ich erst 'mal einiges
lesen und noch mehr darüber nachdenken.
Den Thread habe ich kapiert, Semaphore aber noch nicht völlig begriffen
(kommt noch).
Dass Christian Schmitz in seinem post dennoch die Simpel-Version nicht
verwerfen wollte, hat mir zu Denken gegeben. Und tatsächlich:
Wenn das Hauptprogramm einen Thread bildet, kann dieser zwar beliebig
angehalten werden, das Hauptprogramm läuft aber weiter.
Doch, das ginge: Wenn beim Programmstart Window1 aufgebaut werden soll und
dazu Daten aus der DB gebraucht werden, auf deren Eintreffen gewartet werden
muss, dann wird in Window1.Open das Window1.visible = false gesetzt.
Von Window1 im Hintergrund wird ein Thread gebildet und gestartet, der über
Window1.Socket die DB abfragt und solange suspended bleibt, bis er von
Window1.Socket.DataAvailable wieder gestartet wird. Dann werden diese Daten
zum Aufbau des Fensters verarbeitet und erst dann wird vom ablaufenden
Thread Window1.visible = true gesetzt. So etwa müsste es gehen.
besten Dank, Christian Hahn.
----- Original Message -----
From: "Thomas Tempelmann" <tempelm...@gmail.com>
To: "REALbasic NUG German" <realbasic-nug.de@lists.realsoftware.com>
Sent: Saturday, February 27, 2010 1:34 PM
Subject: Re: Warteschleife
ja, dazu benutzt man nen rhread und semaphore oder thread.sleep und .resume
ich hab auf meiner webseite dazu auch ein bsp, suche mal nach "process
sleep".
On Saturday, February 27, 2010, Christian Hahn <christian.h...@snafu.de>
wrote:
Hallo,
meine Programm-Routine muss über ein Socket DB-Daten abfragen und kann
erst weitermachen, wenn diese Daten available sind.
Am einfachsten wäre, die Routine mit dem Befehl socket.write zu beenden
und das socket.dataavailable-Event eine weitere Routine aufrufen zu
lassen, die den Aufbau des Fensters vollendet. Aber das wird ziemlich
unübersichtlich.
Die Überlegung, die Routine in einer do-loop-Schleife so lange warten zu
lassen, bis das socket.dataavailable-Event die Variable DatenBreit auf
true gesetzt hat, erscheint mir etwas abenteuerlich.
Gibt es nicht eine solide Technik dafür?
beste Grüße, Christian Hahn.
--
Thomas Tempelmann, http://www.tempel.org/