J'ai créer une form dans mon application. Je voudrais rajouter un contrôle
sur cette form via un threading. Quand je le fait, le thread plante car le
framework me dit "Les contrôles créés sur un thread ne peuvent pas être
parents d'un contrôle d'un autre thread."
Comment je peux contourner cela ???
Merci
Sylo
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pon
Jette un oeil sur le backgroundworker, le plus simple moyen de faire du multitâche. Sinon, c'est pass très comliqué non plus. Il te faut :
1. créer une routine effectuant ton écriture. Ex : private sub EcrireTexte (Txt as string) MonTextBox.Text = "Hello" end sub
2. créer un type délégué simple avec la même signature que la routine. Ex : private delegate sub TypeDélégué (Txt as string)
3. déclarer une variable délégué du type de ton type délégué en lui passant l'adresse de ta routine dim EcrireTextBoxDansLAutreTâche as TypeDélégué (Addressof EcrireTexte )
4. et enfin invoquer ce délégué sur l'objet à écrire. Ex : MonTextBox.BeginInvoke(EcrireTextBoxDansLAutreTâche ).
Et ouala.
"Sylo" <sylvain.malleval[at]dotsoft.fr> a écrit dans le message de news: %233ap$YC$
Bonjour,
J'ai créer une form dans mon application. Je voudrais rajouter un contrôle sur cette form via un threading. Quand je le fait, le thread plante car le framework me dit "Les contrôles créés sur un thread ne peuvent pas être parents d'un contrôle d'un autre thread." Comment je peux contourner cela ??? Merci Sylo
Jette un oeil sur le backgroundworker, le plus simple moyen de faire du
multitâche.
Sinon, c'est pass très comliqué non plus. Il te faut :
1. créer une routine effectuant ton écriture. Ex :
private sub EcrireTexte (Txt as string)
MonTextBox.Text = "Hello"
end sub
2. créer un type délégué simple avec la même signature que la routine. Ex :
private delegate sub TypeDélégué (Txt as string)
3. déclarer une variable délégué du type de ton type délégué en lui passant
l'adresse de ta routine
dim EcrireTextBoxDansLAutreTâche as TypeDélégué (Addressof EcrireTexte )
4. et enfin invoquer ce délégué sur l'objet à écrire. Ex :
MonTextBox.BeginInvoke(EcrireTextBoxDansLAutreTâche ).
Et ouala.
"Sylo" <sylvain.malleval[at]dotsoft.fr> a écrit dans le message de news:
%233ap$YC$GHA.4704@TK2MSFTNGP04.phx.gbl...
Bonjour,
J'ai créer une form dans mon application. Je voudrais rajouter un contrôle
sur cette form via un threading. Quand je le fait, le thread plante car le
framework me dit "Les contrôles créés sur un thread ne peuvent pas être
parents d'un contrôle d'un autre thread."
Comment je peux contourner cela ???
Merci
Sylo
Jette un oeil sur le backgroundworker, le plus simple moyen de faire du multitâche. Sinon, c'est pass très comliqué non plus. Il te faut :
1. créer une routine effectuant ton écriture. Ex : private sub EcrireTexte (Txt as string) MonTextBox.Text = "Hello" end sub
2. créer un type délégué simple avec la même signature que la routine. Ex : private delegate sub TypeDélégué (Txt as string)
3. déclarer une variable délégué du type de ton type délégué en lui passant l'adresse de ta routine dim EcrireTextBoxDansLAutreTâche as TypeDélégué (Addressof EcrireTexte )
4. et enfin invoquer ce délégué sur l'objet à écrire. Ex : MonTextBox.BeginInvoke(EcrireTextBoxDansLAutreTâche ).
Et ouala.
"Sylo" <sylvain.malleval[at]dotsoft.fr> a écrit dans le message de news: %233ap$YC$
Bonjour,
J'ai créer une form dans mon application. Je voudrais rajouter un contrôle sur cette form via un threading. Quand je le fait, le thread plante car le framework me dit "Les contrôles créés sur un thread ne peuvent pas être parents d'un contrôle d'un autre thread." Comment je peux contourner cela ??? Merci Sylo