Forcer la sortie d'une procédure [VB6] - Programmation
Marsh Posté le 23-05-2001 à 15:51:01
j'ai pas trop compris ce que tu veux faire mais tu peux pas te debrouiller avec "exit sub" ???
Marsh Posté le 23-05-2001 à 16:06:49
en faite ce que je voudrais faire, mais je suis ps sur que c'est faisable..., c'est de pouvoir arreter l'exécution d'une procédure, non pas à l'intérieur de celle-ci où la effectvement exit sub est suffisant, mais d'arreter l'execution au moyen d'une autre procédure... donc comme marqué au dessus la procédure Sub2 ferait en sorte que la procédure Sub1 s'arrete...
je sais que c'est un peu bizarre mais ca m'arrangerait bien... mais j'ai moi même des doutes sur l'existance de ce genre de commandes...
Marsh Posté le 23-05-2001 à 16:12:10
pour plus d'info...et que ce soit plus concret...
ma proc 1 s'occupe de faire toute une suite de transferts FTP... Mais qd les connexions sont pas bonnes j'aimerais pouvoir annuler toute la série des transferts...
il y a bien un time-out qui fait en sorte de sortir la proc... mais pour éviter l'attente, je voudrais la proc2 qui annulerait entierement la proc1...
je sens que je parles chinois
Marsh Posté le 23-05-2001 à 19:35:49
Si c'est pour du FTP et que ça ne te dérange pas de "soutraiter" tu peux utiliser gratuitement on contrôle K-FTP (cf mon site) qui marche en asynchrone (donc ton appli peut faire autr chose pendant le transfert) et qui te donne pas mal de controle sur le transfert (%...). De plus il est possible d'annuler un transfert à tout moment (kftp.abort)
Sinon, tu peux toujours mettre un boolean en variable globale, l'initialiser à true et quand tu entre dans sub2 le faire passer à false.
Dans sub1 tu vérifie que ce booleen est à true et si ce n'est pas le cas -> exit.
Marsh Posté le 25-05-2001 à 03:03:48
Private Function FTP_Transfer(Met_Tes_Parametres) as Boolean
' ici je met mes routines qui gere les # opérations
tant que je recoit des octets
je traite
sinon
active_compteur
if active_compteur = TIMEOUT ' TIMEOUT = const de la période
FTP_Transfer = FALSE
else
FTP_Transfer = FALSE
end if
End Function
Private Sub
if Function FTP_Transfer = ' tout est OK, on recoit ... la fonction est traitée
else
msgbox "Timeout !"
end if
end sub
Théorie : on a une routine qui gere donc le traitement pis un sub qui l'appelera tant qu elle est vrai sinon erreur (je conseille de mettre un while dans la function).
L'ideal est deux créer un thread pour les deux taches mais bon si la ca peut t aider ...
Note : excusez moi les vrai rézo/codeur, mais j'ai jamais codé koike ce soit axé rézo
Marsh Posté le 25-05-2001 à 03:04:33
if active_compteur = TIMEOUT ' TIMEOUT = const de la période
FTP_Transfer = FALSE
else
FTP_Transfer = TRUE
end if
Mais tu l avais deviné je pense ;p
Marsh Posté le 25-05-2001 à 09:52:00
Ok Merci les gars!!
Je vais voir ce que je peux faire avec le systeme des booléens etc...
@+ GrEgY
Marsh Posté le 23-05-2001 à 13:44:08
y a t il en VB une commande qui permettrait de forcer de sortir d'une ou toutes les procédures en train de tourner?
p . ex
Sub proc1()
'Procédure qui est entrain de tourner
End Sub
Sub Proc2()
Action permetant d'arreter le traitement ds proc1 (ou autres)
end sub
je sais pas si ca existe ce genre de commandes???