Salut la communauté,
Je cherche un exemple sur différentes méthodes pour suspendre un thread.
A prioris la méthode Suspend() de la classe Thread est devenue obselète dans le framework 2.0.
Comment y remédier ?
Version imprimable
Salut la communauté,
Je cherche un exemple sur différentes méthodes pour suspendre un thread.
A prioris la méthode Suspend() de la classe Thread est devenue obselète dans le framework 2.0.
Comment y remédier ?
Je crois qu'il n'y a pas de méthodes de remplacements.
Msdn explique que c'est par raison de sécurité.
Tu trouveras l'explication dans le cadre Attention de la page suivante : http://msdn2.microsoft.com/fr-fr/lib...nd(VS.80).aspx
Je ne veux pas utiliser la syncronisation.
J'ai créer un service windows, sur lequel j'ai activé la possibilité de le mettre en pause.
Ce service lance un thread qi tourne dans une "boucle infini".
La question est simple :D
Comment suspendre l'execution d'un thread ?
Que se passe t'il si dans le traitement du service en cas de "pause", je fais ceci
Code:
1
2
3
4
5
6
7
8
9
10
11 protected override void OnPause() { if (monThread != null) Monitor.Enter(monThread); } protected override void OnContinue() { if (this.threadStart != null) Monitor.Exit(this.threadStart); }
Ca vous semble être la bonne solution ?
Même si Suspend et Resume sont obsolètes... Qu'est ce qui t'empêche de les utiliser quand même ?
J'ai juste expliqué pourquoi Suspend était obsolète.
Ca ne marche pas dans le service.
Lorsque je clique sur Pause, il me fou une erreur.
Avec les methodes statiques Enter() et Exit() de la classe Monitor ça marche impec.
:resolu:
:pingoin2:
Sinon, plutôt que de faire une boucle infinie, tu le fais toi même ton mécanisme de pause.
Pas dur : un booléen, un Thread.Sleep et basta...