
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Attend pour un bloc de ports. Quand des évènements se produisent, répartit au gestionnaire de port lesdits blocs.
dispatch port-block
port-block - Bloc contenant les paires de gestion de ports de communication (type: block!)
La fonction DISPATCH vous aide à configurer des situations complexes basées sur WAIT qui impliquent de multiples ports (par exemple, plusieurs connexions Internet).
L’argument passé à DISPATCH est un bloc qui contient les ports et actions pour ces ports. La valeur du port peut être un type de données port! ou une valeur de dépassement de délai d’attente (le nombre de secondes comme une valeur entière ou décimale, ou une valeur de type de données time! pour les heures, les minutes, et les secondes).
La fonction DISPATCH procède ensuite à l’attente pour les ports fournis en argument, ou pour l’expiration d’un délai d’attente en respectant le bloc d’action fourni. Si une expiration de délai intervient, l’action qui y est reliée est traitée..
port-block: [ tcp-port1 [print "port1 woke up"] tcp-port2 [do port2-wakeup-call] tcp-port3 [handle-port3] tcp-port4 [if do-port4 ['break]] 0:01:00 [do-periodic-processing] ] dispatch port-block
En général, la fonction DISPATCH attendra infiniment, en traitant les ports et les délais d’expiration qui ont été spécifiés. Autrement, si le bloc d’action port retourne le mot BREAK, la fonction DISPATCH est terminée et sortira.
Un seul délai d’expiration peut être spécifié. Si plusieurs valeurs de délai d’expiration sont spécifiées seule la première est utilisée.
NOTE: La fonction WAIT réveille les callbacks en fournissant une alternative très utile pour utiliser DISPATCH, et travaille bien avec le code de l’interface graphique. La fonction WAIT réveille les fonctions de callbacks qui sont évaluées directement par la fonction WAIT lors de leur réveil. Un système spécial de file conserve la liste des fonction éveillées.
wait - Attend pour une durée, un port, ou les deux.