Bonjour a tous
je sais pas trop me servire du System.Threading.Thread tout ce que je sais
faire avec c'est ça :
MyThread = New System.Threading.Thread(AddressOf NomFunction"Ou"Sub)
' Call sub procedure
MyThread.Start
J'ai fais une petite application avec plusieurs onglet
l'onglet 1 c'est la partie parametrage, onglet 2 c'est l'execution, et
l'onglet 3 c'est la partie pour voir si tout c'est bien executé
Le probleme ce pause dans l'onglet 2, l'ors de l'execution diverse
l'application ce bloque sur cet onglet je ne peu en changer durent le
traitement, il faut que toute les executions soit fini pour pouvoir naviguer
dans les Onglets
Peut on utiliser un system.threading.thread de facon que l'application ne ce
fige pas sur un onglet ?
ou alors je l'utilise mal ?
C'est qu'elle que chose que je connais pas du tout !!!!
D'apres ce que vous dites 'il faut utiliser la methode Invoke de objet' LvQueue.Invoke(???) bon je vais peut etre arreter de vous embétez avec ces problemes et rechercher par moi meme (c'est comme ça qu'on ce forme en forgeant)
Merci pour l'aide que vous m'avez apporté ! :) a bientot peut etre ! :)
C'est qu'elle que chose que je connais pas du tout !!!!
D'apres ce que vous dites 'il faut utiliser la methode Invoke de objet'
LvQueue.Invoke(???)
bon je vais peut etre arreter de vous embétez avec ces problemes et
rechercher par moi meme (c'est comme ça qu'on ce forme en forgeant)
Merci pour l'aide que vous m'avez apporté ! :) a bientot peut etre ! :)
C'est qu'elle que chose que je connais pas du tout !!!!
D'apres ce que vous dites 'il faut utiliser la methode Invoke de objet' LvQueue.Invoke(???) bon je vais peut etre arreter de vous embétez avec ces problemes et rechercher par moi meme (c'est comme ça qu'on ce forme en forgeant)
Merci pour l'aide que vous m'avez apporté ! :) a bientot peut etre ! :)
Julien Bakmezdjian [MS]
Bonjour,
Si LvQueue est bien le nom du contrôle à modifier, oui ! Je n'ai pas vérifié la syntaxe suivante (je suis plutôt un C#-iste), mais l'idée devrait être là !
Vous créez quelque part dans votre classe un délégué :
Public Delegate Sub ChangeInterfaceDelegate(ByVal nouvelleValeur as Integer)
Notre délégué ici présent prend en paramètre un int. A vous de mettre ce qui vous intéresse (ie les infos nécessaires pour que le contrôle se mette à jour). Puis vous créez une méthode quelque part dans la classe qui correspond à la signature de ce délégué (ici, une Sub avec un int en paramètre) :
Public Sub ChangeInterface(ByVal nouvelleValeur as Integer) 'travailler ici sur les contrôles en fonction des valeurs passées End Sub
On instancie ensuite une "variable" du type de notre délégué :
Private maj as ChangeInterfaceDelegate maj = New ChangeInterfaceDelegate(AddressOf ChangeInterface)
Enfin, depuis la méthode "de travail", vous appeler le .Invoke du contrôle :
Dim args as Object() = {16} 'valeur pour la mise à jour LvQueue.Invoke(maj, args)
En espérant que cela marche et vous soit utile !
Julien
"TroXsA" a écrit dans le message de news: ddcrir$s86$
C'est qu'elle que chose que je connais pas du tout !!!!
D'apres ce que vous dites 'il faut utiliser la methode Invoke de objet' LvQueue.Invoke(???) bon je vais peut etre arreter de vous embétez avec ces problemes et rechercher par moi meme (c'est comme ça qu'on ce forme en forgeant)
Merci pour l'aide que vous m'avez apporté ! :) a bientot peut etre ! :)
Bonjour,
Si LvQueue est bien le nom du contrôle à modifier, oui !
Je n'ai pas vérifié la syntaxe suivante (je suis plutôt un C#-iste), mais
l'idée devrait être là !
Vous créez quelque part dans votre classe un délégué :
Public Delegate Sub ChangeInterfaceDelegate(ByVal nouvelleValeur as
Integer)
Notre délégué ici présent prend en paramètre un int. A vous de mettre ce qui
vous intéresse (ie les infos nécessaires pour que le contrôle se mette à
jour).
Puis vous créez une méthode quelque part dans la classe qui correspond à la
signature de ce délégué (ici, une Sub avec un int en paramètre) :
Public Sub ChangeInterface(ByVal nouvelleValeur as Integer)
'travailler ici sur les contrôles en fonction des valeurs passées
End Sub
On instancie ensuite une "variable" du type de notre délégué :
Private maj as ChangeInterfaceDelegate
maj = New ChangeInterfaceDelegate(AddressOf ChangeInterface)
Enfin, depuis la méthode "de travail", vous appeler le .Invoke du contrôle :
Dim args as Object() = {16} 'valeur pour la mise à jour
LvQueue.Invoke(maj, args)
En espérant que cela marche et vous soit utile !
Julien
"TroXsA" <Shagn@Shagn.Shagn> a écrit dans le message de news:
ddcrir$s86$1@s1.news.oleane.net...
C'est qu'elle que chose que je connais pas du tout !!!!
D'apres ce que vous dites 'il faut utiliser la methode Invoke de objet'
LvQueue.Invoke(???)
bon je vais peut etre arreter de vous embétez avec ces problemes et
rechercher par moi meme (c'est comme ça qu'on ce forme en forgeant)
Merci pour l'aide que vous m'avez apporté ! :) a bientot peut etre ! :)
Si LvQueue est bien le nom du contrôle à modifier, oui ! Je n'ai pas vérifié la syntaxe suivante (je suis plutôt un C#-iste), mais l'idée devrait être là !
Vous créez quelque part dans votre classe un délégué :
Public Delegate Sub ChangeInterfaceDelegate(ByVal nouvelleValeur as Integer)
Notre délégué ici présent prend en paramètre un int. A vous de mettre ce qui vous intéresse (ie les infos nécessaires pour que le contrôle se mette à jour). Puis vous créez une méthode quelque part dans la classe qui correspond à la signature de ce délégué (ici, une Sub avec un int en paramètre) :
Public Sub ChangeInterface(ByVal nouvelleValeur as Integer) 'travailler ici sur les contrôles en fonction des valeurs passées End Sub
On instancie ensuite une "variable" du type de notre délégué :
Private maj as ChangeInterfaceDelegate maj = New ChangeInterfaceDelegate(AddressOf ChangeInterface)
Enfin, depuis la méthode "de travail", vous appeler le .Invoke du contrôle :
Dim args as Object() = {16} 'valeur pour la mise à jour LvQueue.Invoke(maj, args)
En espérant que cela marche et vous soit utile !
Julien
"TroXsA" a écrit dans le message de news: ddcrir$s86$
C'est qu'elle que chose que je connais pas du tout !!!!
D'apres ce que vous dites 'il faut utiliser la methode Invoke de objet' LvQueue.Invoke(???) bon je vais peut etre arreter de vous embétez avec ces problemes et rechercher par moi meme (c'est comme ça qu'on ce forme en forgeant)
Merci pour l'aide que vous m'avez apporté ! :) a bientot peut etre ! :)
TroXsA
Il me semble que la version 2005 est planté dans la gestion des thread, j'ai fait un example qui fonctionne tres tres bien sous Visual Basic 2003 et sous la version de Vb.net 2005 ça fait une erreur ... tout comme mon code que j'avais fais ...
******************************************************* Opération inter-threads non valide : le contrôle 'txtResult' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé. *******************************************************
Je pense que sous la version 2005 il ne faut plus utiliser directement les threads comme expliquer sur certain site mais utiliser directement l'objet BackgroundWorker avec DoWork, quoi que des qu'il s'agit de modifier un controle quel que soit sont types ça cree une ** Opération inter-threads non valide **, il faut trouver une parade pour contré cette erreur !
donc .... A suivre
Il me semble que la version 2005 est planté dans la gestion des thread, j'ai
fait un example qui fonctionne tres tres bien sous Visual Basic 2003 et sous
la version de Vb.net 2005 ça fait une erreur ... tout comme mon code que
j'avais fais ...
*******************************************************
Opération inter-threads non valide : le contrôle 'txtResult' a fait l'objet
d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
*******************************************************
Je pense que sous la version 2005 il ne faut plus utiliser directement les
threads comme expliquer sur certain site mais utiliser directement l'objet
BackgroundWorker avec DoWork, quoi que des qu'il s'agit de modifier un
controle quel que soit sont types ça cree une ** Opération inter-threads non
valide **, il faut trouver une parade pour contré cette erreur !
Il me semble que la version 2005 est planté dans la gestion des thread, j'ai fait un example qui fonctionne tres tres bien sous Visual Basic 2003 et sous la version de Vb.net 2005 ça fait une erreur ... tout comme mon code que j'avais fais ...
******************************************************* Opération inter-threads non valide : le contrôle 'txtResult' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé. *******************************************************
Je pense que sous la version 2005 il ne faut plus utiliser directement les threads comme expliquer sur certain site mais utiliser directement l'objet BackgroundWorker avec DoWork, quoi que des qu'il s'agit de modifier un controle quel que soit sont types ça cree une ** Opération inter-threads non valide **, il faut trouver une parade pour contré cette erreur !
donc .... A suivre
c2i-Richard Clark
Non, au contraire, le .NET 2.0 ajoute des fonctionnalités de surveillance pour être sur d'éviter ces pbs de synchronisation. http://www.c2i.fr/code.aspx?IDCode`4
-- Richard Clark - MVP .NET http://www.project-hoshimi.com http://www.c2i.fr "TroXsA" a écrit dans le message de news: ddd0kn$v9e$
Il me semble que la version 2005 est planté dans la gestion des thread, j'ai fait un example qui fonctionne tres tres bien sous Visual Basic 2003 et sous la version de Vb.net 2005 ça fait une erreur ... tout comme mon code que j'avais fais ...
******************************************************* Opération inter-threads non valide : le contrôle 'txtResult' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé. *******************************************************
Je pense que sous la version 2005 il ne faut plus utiliser directement les threads comme expliquer sur certain site mais utiliser directement l'objet BackgroundWorker avec DoWork, quoi que des qu'il s'agit de modifier un controle quel que soit sont types ça cree une ** Opération inter-threads non valide **, il faut trouver une parade pour contré cette erreur !
donc .... A suivre
Non, au contraire, le .NET 2.0 ajoute des fonctionnalités de surveillance
pour être sur d'éviter ces pbs de synchronisation.
http://www.c2i.fr/code.aspx?IDCode`4
--
Richard Clark - MVP .NET
http://www.project-hoshimi.com
http://www.c2i.fr
"TroXsA" <Shagn@Shagn.Shagn> a écrit dans le message de news:
ddd0kn$v9e$1@s1.news.oleane.net...
Il me semble que la version 2005 est planté dans la gestion des thread,
j'ai fait un example qui fonctionne tres tres bien sous Visual Basic 2003
et sous la version de Vb.net 2005 ça fait une erreur ... tout comme mon
code que j'avais fais ...
*******************************************************
Opération inter-threads non valide : le contrôle 'txtResult' a fait
l'objet d'un accès à partir d'un thread autre que celui sur lequel il a
été créé.
*******************************************************
Je pense que sous la version 2005 il ne faut plus utiliser directement les
threads comme expliquer sur certain site mais utiliser directement l'objet
BackgroundWorker avec DoWork, quoi que des qu'il s'agit de modifier un
controle quel que soit sont types ça cree une ** Opération inter-threads
non valide **, il faut trouver une parade pour contré cette erreur !
Non, au contraire, le .NET 2.0 ajoute des fonctionnalités de surveillance pour être sur d'éviter ces pbs de synchronisation. http://www.c2i.fr/code.aspx?IDCode`4
-- Richard Clark - MVP .NET http://www.project-hoshimi.com http://www.c2i.fr "TroXsA" a écrit dans le message de news: ddd0kn$v9e$
Il me semble que la version 2005 est planté dans la gestion des thread, j'ai fait un example qui fonctionne tres tres bien sous Visual Basic 2003 et sous la version de Vb.net 2005 ça fait une erreur ... tout comme mon code que j'avais fais ...
******************************************************* Opération inter-threads non valide : le contrôle 'txtResult' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé. *******************************************************
Je pense que sous la version 2005 il ne faut plus utiliser directement les threads comme expliquer sur certain site mais utiliser directement l'objet BackgroundWorker avec DoWork, quoi que des qu'il s'agit de modifier un controle quel que soit sont types ça cree une ** Opération inter-threads non valide **, il faut trouver une parade pour contré cette erreur !
donc .... A suivre
TroXsA
tien tien je connais ce nom "Richard Clark" :D Je suis ravi qu'il existe une solution, je vais tester tout ça et je reviens pour confirmer :)
Question a par : tu serais quand c'êtes ouvrage ( http://www.microsoft.com/mspress/books/7653.asp ) sera sortie en version Francaise ?
Merci
@+
tien tien je connais ce nom "Richard Clark" :D
Je suis ravi qu'il existe une solution, je vais tester tout ça et je reviens
pour confirmer :)
Question a par : tu serais quand c'êtes ouvrage (
http://www.microsoft.com/mspress/books/7653.asp ) sera sortie en version
Francaise ?
-- Richard Clark - MVP .NET http://www.project-hoshimi.com http://www.c2i.fr "TroXsA" a écrit dans le message de news: ddda3r$4q4$
tien tien je connais ce nom "Richard Clark" :D Je suis ravi qu'il existe une solution, je vais tester tout ça et je reviens pour confirmer :)
Question a par : tu serais quand c'êtes ouvrage ( http://www.microsoft.com/mspress/books/7653.asp ) sera sortie en version Francaise ?
Merci
@+
Heu..., en français SVP ;-)))
Toi quoi dire ?
--
Richard Clark - MVP .NET
http://www.project-hoshimi.com
http://www.c2i.fr
"TroXsA" <Shagn@Shagn.Shagn> a écrit dans le message de news:
ddda3r$4q4$1@s1.news.oleane.net...
tien tien je connais ce nom "Richard Clark" :D
Je suis ravi qu'il existe une solution, je vais tester tout ça et je
reviens pour confirmer :)
Question a par : tu serais quand c'êtes ouvrage (
http://www.microsoft.com/mspress/books/7653.asp ) sera sortie en version
Francaise ?