Je ne sais pas si c'est une faute, je me rappelle pas en avoir vu mais bon ça remonte aussi.
Pour ton erreur inter-threads, c'est parce que il n'y a que le thread de la fenêtre qui peut utiliser...
Type: Messages; Utilisateur: Jérôme Lambert
Je ne sais pas si c'est une faute, je me rappelle pas en avoir vu mais bon ça remonte aussi.
Pour ton erreur inter-threads, c'est parce que il n'y a que le thread de la fenêtre qui peut utiliser...
Si tu vois des fautes, il faut contacter un reponsable de la section, c'est pas moi qui corrige les articles :aie:
Le tuto m'a suffit pour comprendre le principe, qu'est ce qui te va pas avec ?
Non il reste dans la file des évènements en attente d'être traités.
Perdre des données ? :?
Non.
Ou alors j'ai pas compris la question.
Ta classe doit implémenter un évènement qu'elle pourra générer à chaque fois que la valeur de ta variable changera comme ça ta form pourra s'abonner à l'évènement en question. Mais bon, ça devient...
Un Thread de ta form qui va lire la valeur mise à jour dans ta classe theThread_Scan ?
Oui il est effectivement surchargé pour avoir un autre sens que la simple concaténation. Ca permet de dire dans notre cas: "je veux exécuter la méthode myTimer_Tick pour mon évènement Tick.
De...
J'ai tout simplement créé (dynamiquement) la méthode qui sera généré à chaque évènement Tick du Timer.
Un exemple : j'ai fait ce que Visual fait pour toi d'habitude: Quand tu mets un bouton sur ta...
J'avais pourtant expliqué qu'il fallait faire ça avec un timer.
Tu en reviens au problème que ta classe Form lors de l'évènement shown boucle... Du coup, elle se fige et ne réagira à tes cliques...
Tu es sûr que tu ne fais pas une boucle dans l'évènement Tick de ton Timer ?
C'est vrai que mes explications ne sont pas toujours très claires :P
Voici donc un lien qui t'expliquera le principe :
http://drq.developpez.com/dotnet/articles/threads/#L5
C'est même pas un problème d'affichage car je viens de tester un timer qui met à jour un label en incrémentant un nombre de une unité à chaque seconde et tout s'affiche correctement.
J'avoue que...
Quel est ton code qui met à jour la valeur de ton label ?
C'est normal que ça passe directement à 100.
Tu as fait un Thread.Sleep de 10 milisecondes en pensant que c'était des secondes.
Tu dois donc écrire :
Thread.Sleep(10000);
Pour attendre 10...
En effet, dans ce cas ci, il n'y a pas besoin de delegate.
D'accord je comprend mieux.
Ce que tu dois faire, c'est déclarer
theThread_Scan aScan = new theThread_Scan();
en global dans ta classe Form.
En plus de celà, tu dois créer un timer qui...
Désolé, j'avais perdu de vue ce sujet.
Avant de te répondre, pourrais-tu me résumer où tu en es en répondant aux questions suivantes :
Tu as créé une classe qui englobe un Thread qui s'exécute...
Oui tu peux.
N'hésite pas si tu as des problèmes quand tu essayeras.
Alors pour ça, on est parti pour les explications des déléguées :p
Pour ton cas où tu veux afficher sur la fenêtre l'évolution du traitement de ton thread, c'est à ton thread d'appeler une méthode...
Oui mais si ton thread dure 10 minutes, ta boucle dans formload va durer 10 minutes aussi. Donc la fenêtre va se figer pendant 10 minutes tant que la méthode formload ne sera pas finie.
Ou bien...
Dans ce cas, 2 possibilités avec ce code:
while (monThread.isAlive(){
this.text = monThread.getval();
}
Soit isAlive renvoit false et tu sors tout de suite de ton Form_Load...
=> Pas...
Bizarre tout ça :p
while (monThread.isAlive(){
this.text = monThread.getval();
}
Qui exécute ce code ?
> Ta fenêtre avec un timer ou autre ?
> Ton Thread...
Difficile à dire, tu procèdes comment pour regarder l'évolution de la valeur en question ?
En mode pas à pas en faisaint des watch sur les variables qui t'intéressent ?
Ou bien un mécanisme qui...
C'est pas logique que ton Thread modifie les valeurs comme tu dis et que en dehors de ton Thread, tu ne saches pas lire les modifications...
Peut être quelques bouts de codes s'imposent ? :)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.