Comment voir les affichages d'un thread quand lapplication principale est occupé

Syphou Messages postés 52 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 6 juin 2011 - 12 mars 2007 à 12:16
Syphou Messages postés 52 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 6 juin 2011 - 12 mars 2007 à 14:13
Bonjour, j'ai un problème avec un thread

J'ai une application windows (Fenetre Principale avec des fenetre enfant...) qui communique avec un webservice

Ce que je voulais, cest que avant chaque appel au
webservice, afficher un label en bas de la fenetre principale avec 3 images qui s'afficherai lune après lautre(un semblan d'animation) pour montrer qu'on fait une connexion internet. Et arreter cette animation lorsque le webservice a fini de travailler.

Pour cela j'ai fait un thread que je cree dans le constructeur de la fenetre principale. Je fait comme ceci





ThChargement.Name = "ThChargement"
ThChargement.IsBackground =

True

ThChargement.Priority = ThreadPriority.Highest


ThChargement.Start()
labChargement.Visible =

False

Donc le thread tourne en permanance mais le label nest pas visible.

Voici le code du thread





Private



Sub
Chargement()


While
1 = 1


   Try



      labChargement.Image = imlImages.Images(0)
      Thread.Sleep(1000)
      labChargement.Image = imlImages.Images(1)
      Thread.Sleep(1000)
      labChargement.Image = imlImages.Images(2)
      Thread.Sleep(1000)
      labChargement.Image = imlImages.Images(3)
      Thread.Sleep(1000)




   Catch
ex

As
Exception


   'au cas ou

   End



Try

End



While

End



Sub

Donc il change limage de mon label toute les secondes

Et donc dans mes fenetre enfant, jai par exemple CONNEXION ce que je fait c'est avant lappel au web service je rend le label de la fenetre parent visible, donc on voi le thread travailler... MAIS :D vu que lapplication est en conexion avec le webservice, sa fait freezer l'affichage donc on ne voi pas le label ...

J'avai deja eu ce genre de probleme, vu que lapplication principale est occuper a connecter, ben elle ne peu pas mettre a jour en meme temps son affichage (donc montrer que le label est visible)... ce que je devai faire cetait au debut de lapplic, lancer un thread qui faisai tout le travail que doi faire lapplic ainsi lapplic principale na plus rien dautre a faire que de soccuper de son affichage,.. mais dans mon cas cest pas possible... Quelqu'un a un idée ?

 

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 mars 2007 à 13:19
Je dis peut-etre une bétise, mais ne serait-ce pas plus judicieux de mettre dans un thread séparé la fonctionnalité occupante, c'est à dire ici la connection au webservice. Etant donné que c'est elle qui bloque tout, il me semble plus logique de lui attribuer un thread propre pour qu'elle ne bloque que ce thread et non toute l'appli.

Reste à voir si c'est possible avec un web service.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Syphou Messages postés 52 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 6 juin 2011
12 mars 2007 à 14:13
C'est bien a cela que je pensais mais sa me fait changer plein de truc dans mon code
Jaurai bien voulu une soution miracle ^^ on sais jamais ^^
0
Rejoignez-nous