OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 2007
-
11 avril 2007 à 22:32
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 2009
-
12 avril 2007 à 19:01
Je programme en VB.NET avec VS.NET 2003.
J'utilise souvent les threads. par exemple ce code :
Public t as new threading.thread(addressof MySub) ' déclaré publiquement dans le formulaire.
Le code d'un évènement bouton Start : t.Start()
Sub MySub
' Code de la procédure appelé par le thread
End Sub
lorsqu'avec un bouton stop je met dans le code de l'évenement click : t.Abort()
Lorsque je clique sur le bouton Stop je n'ai aucune erreur avec le code t.Abort() mais Le processus continue.
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 12 avril 2007 à 15:46
Le thread en cours passe jamais la main à l'autre puiseque c'est du multithreading et sleep n'a rien à voir avec. Si tu regardes ma source de météto tu verras par toi même.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 12 avril 2007 à 16:03
Mais non enfin, ton processeur ne peut pas exécuter deux threads à la fois ! Ne crois pas que tes threads sont exécutés continuellement en parallèles ! Regarde les exempleset le tutos microsoft !
Pour que ton processeur passe d'un thread à l'autre, tu dois utiliser Threading.Thread.Sleep(0) indiquant que si un autre thread du processus à une demande de code à exécuter sur le feu, il peu le faire...
Et encore ici aussi :
http://dotnetjunkies.com/WebLog/jdixon/archive/2004/09/27/26934.aspx
Et pour finir, si ton thread ne passe jamais la main, mais quel intéret de faire du multithreading ??! Fais simplement exécuter ta méthode par ton thread principal et éventuellement met un DoEvents dans la boucle si tu veux que l'utilisateur puisse appuyer sur un bouton pour l'arrêter...
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 12 avril 2007 à 18:23
Excuse moi mais j'utilise plusieurs threads parallèlement d'habitude sur un seul processus.
Par exemple pour le MailBomber pour augmenter la vitesse d'envoi.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 12 avril 2007 à 18:30
Lol et en quoi ça va plus vite ???
Ce n'est pas parce qu'un processus possède plusieurs Threads que windows va lui attribuer plus de cycles, ça ne change absolument rien...
Si tu fais 100 Threads dans 100 méthode en parallèles sans instructions d'arrêts ou de pause quelconques, les 100 Threads exécuteront leurs méthodes les une après les autres, le suivant devant attendre que le précédant aie fini, exactement comme si tu les avait exécuté en une fois avec un seul Thread...
Regarde les exemple de microsoft, il y a des sleep(0), et puisqu'ils ont concu le framework, on peut quand même penser qu'ils savent de quoi ils parlent, non ?
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 12 avril 2007 à 18:34
Pas du tout, et en quoi ca va plsu vite ? par exemple j'envoi 100 mails avec 1 thread ca va à 5mails/s par exemple et si je met 10 threads ca multiplie la vitesse par dix mais il faut limiter le nombre de threads pour pas saturer autrement ca prendrait trop de mémoire donc je met 5 threads pour être raisonnable.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 12 avril 2007 à 19:01
Et tu crois que la vitesse d'envoi de mail est limitée par ton processeur ?
Bon écoute, tu me broute, si tu veux pas essayer ce que je te dis, ne fais rien, moi je m'en f***...
a+
<hr width="100%" size="2" />Julien.