Bonjour,
Je suis face à un gros problème. J'ai un thread dans lequel je capture des images à une cadence fixe (30 ms). Voici sa structure:
Pour démarrer ou stopper celui-ci j'ai respectivement les fonctions StartThread et StopThread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
Mon problème:
Je veux stopper la capture après un certain temps. J'ai donc créé un timer qui met la variable StopThread_b à true après x millisecondes.
C'est là qu'est mon problème parfois ma thread se coupe parfois pas! En effet pour mettre à jour mon interface (principalement des labels), j'appelle mes fonctions de manière asynchrone via des delegate:
Pour éviter les surcharges, je récupère un IAsyncResult depuis la méthode BeginInvoke pour mettre un délai maximum au traitement de la mise à jour de mon interface:
Code : Sélectionner tout - Visualiser dans une fenêtre à part this->BeginInvoke(...)
On dirait que c'est là qu'est mon problème quand le timer est déclenché et qu'il stoppe le thread, mon interface continue de se mettre à jour... En fait on dirait que mon programme est en train d'afficher toutes mes appels asynchrones qui étaient pending... Comment les annuler?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
J'ai bien essayé d'utiliser un:
mais ça ne résoud pas le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application::DoEvents
le Thread->Abort fonctionne mais je préférerai évitervu que je dois bien m'assurer de tout nettoyer à la fin du thread (Destroy).
Il doit bien y avoir une solution!

 

 
		
		 
         
 

 
			
			


 
			


 Stopper un thread après un certain temps
 Stopper un thread après un certain temps
				 Répondre avec citation
  Répondre avec citation
Partager