DEMO BACKGROUNDWORKER & PING

Utilisateur anonyme - 5 mars 2007 à 22:41
cs_Usaf Messages postés 9 Date d'inscription vendredi 13 avril 2007 Statut Membre Dernière intervention 4 août 2008 - 19 août 2007 à 11:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38809-demo-backgroundworker-ping

cs_Usaf Messages postés 9 Date d'inscription vendredi 13 avril 2007 Statut Membre Dernière intervention 4 août 2008
19 août 2007 à 11:23
Mais il y a une manière de surmonter ce blocage?
mickeyrr Messages postés 1 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 4 avril 2007
4 avril 2007 à 01:28
ok
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
9 mars 2007 à 21:18
En fait .NET 1.x, permettait ce genre de manipulations. Ce qui posait d'enormes probleme de synchronisation inter thread souvent tres long a detecter. J'approuve donc la decision de bloquer ce genre d'operations en mode standard
Utilisateur anonyme
9 mars 2007 à 08:59
Microsoft devrais tout ses controles de cette facon certaine choses deviennedrais plus simple a faire ...
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
9 mars 2007 à 01:23
En effet le toolstrip est un peu particulier, mais cela est du au fait qu'il sert principalement a afficher des informations souvent asynchrones.
Utilisateur anonyme
8 mars 2007 à 23:42
d'apres ce que j'avais compris un thread ne peux pas avoir d'interaction avec des controle a moins d'avoir un delegate alors je pige plus avec ce controle !
exemple tu fait la meme choses que ton code sauf que toolStripStatusLabel1.Text, tu le remplace par ton Textbox1.Text et la tu as une belle execption d'inter-threads et la le msdn dit exactement ce que j'avais avant .... il faut un delegate !

extrait du msdn
_______________________________________
La façon par défaut d'implémenter le multithreading dans votre application est d'utiliser le composant BackgroundWorker. Le composant BackgroundWorker utilise un modèle événementiel pour le multithreading. Le thread de travail exécute votre gestionnaire d'événements DoWork, et le thread qui crée vos contrôles exécute vos gestionnaires d'événements ProgressChanged et RunWorkerCompleted. Veillez à n'appeler aucun de vos contrôles depuis votre gestionnaire d'événements DoWork.
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
8 mars 2007 à 22:17
"je comprend encore moins pourquoi tu n'as pas d'exeption avec le toolStripStatusLabel1.Text, là je capte vraiment pas !"

Pourquoi quelle exception attendais tu ?
Utilisateur anonyme
8 mars 2007 à 13:56
J'ai telechargé les sources, j'ai executé les fichiers un par un ... au cas ou !
ça na pas fonctionné, j'ai VS 2003 et VS 2005
aujourd'huit au boulot (meme condition avec les deux VS 03/05) je re-telecharge les sources, la permiere chose que je fait c'est evidament d'executer le fichier "WindowsApplication2.vbproj" et la suprise ça fonctionne ... peut etre fatiguer l'autre jours quand j'ai voulu voir ton code ou alors j'ai un probleme :) !

ce que je comprend pas trop dans ton code c'est a quoi sers ton TextBox1 ?
et je comprend encore moins pourquoi tu n'as pas d'exeption avec le toolStripStatusLabel1.Text, là je capte vraiment pas !

j'ai quand meme fait une petite modification sur le code que tu as donné
Dans le DoWork
______________________________________________________________
Dim w As BackgroundWorker = CType(sender, BackgroundWorker)
Dim ping As New System.Net.NetworkInformation.Ping()

For i As Integer = 0 To 10
w.ReportProgress(CInt(ping.Send("10.xxx.xxx.xxx").RoundtripTime.ToString()))
System.Threading.Thread.Sleep(500)
If i = 10 Then
backgroundWorker1.CancelAsync()
End If
Next
__________________________________________________________________

Puis dans le progress
__________________________________________________________________
textBox1.Text += "Ping : " & e.ProgressPercentage.ToString & " ms" & vbCrLf
__________________________________________________________________

J'suis bien content de voir des exemples de ce composant car il y a pas mal de choses qui m'echape, j'espere en voir d'autre

Merci
www.troxsa.info :)
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
8 mars 2007 à 00:18
Le Sln n'est pas obligatoire, il suffit d'ouvrir le fichier VBProj.

Comme quoi, avant de crier au loup, il faut s'assurer qu'il sagit bien d'un loup et non d'un chiot...

Sinon j'ai bien downloader le zip avant de poser la question, et tout fonctionne comme prevu.

Cordialement
Utilisateur anonyme
7 mars 2007 à 16:02
Tu pourrais quand meme telecharger ce que tu as donné et faire les tests de ton coté puis voir ce qu'il manque ....

"sln" (file solution non ?)
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
5 mars 2007 à 22:55
Comment ca incomplete ? Il manque quoi ?
Utilisateur anonyme
5 mars 2007 à 22:41
Salut !

ta sources est incomplette !
pourrais tu mettre toute ta source stp ?

@+
Rejoignez-nous