cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 2009
-
15 avril 2005 à 11:49
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 2009
-
23 avril 2005 à 02:06
Bonjour a tous,
voila je suis en train de developper une application ou j'affiche l'image d'une webcam... seulement pour ne pas bloquer l'application, je voudrais que tout qui s'occupe de l'affichage de la cam soit lancer dans un thread, seulement mon thread se termine apres, et je perd donc l'affichage de ma cam. Ma question est donc comment empécher qu'un thread se termine?
Bob...
"La chance accorde ses faveur aux esprits avertis..."
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 avril 2005 à 12:07
Bien que je ne l'ai jamais utilisée, je pense à la fonction
WaitForSingleObject à la fin de ton thread, mais je ne vois pas ce que
ca change. Meme si ton thread ne se termine pas, l'affichage
disparaitra pour la même raison. Il faudrait voir a quoi ressemble ton
thread.
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 15 avril 2005 à 12:15
voila mon thread:
// thread pour l'affiche de la cam
DWORD WINAPI ThreadWebCamProc(
void *)
{
WebCamConnect(Param.x, Param.y, 320, 240);
WebCam.ChooseSource();
WebCam.AfficheWebCam();
return 0;
}
en fait lorsque mon thread se termine, bah l'affichage n'est pu opérationnel... la solution qui me vient donc a l'esprit est d'empecher mon thread de se terminer !
Bob...
"La chance accorde ses faveur aux esprits avertis..."
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 avril 2005 à 12:59
Ah oui en fait ton image ne s'affiche qu'une seule fois quoi. Tu peux
faire ce que j'ai dire, ou même utiliser une simple variable globale
pour savoir quand le thread doit se terminer:
BOOL bEndThread;
DWORD WINAPI ThreadWebCamProc(void *)
{
WebCamConnect(Param.x, Param.y, 320, 240);
WebCam.ChooseSource();
while(!bEndThread)
{
WebCam.AfficheWebCam();
Sleep(...);
}
return 0;
}
bEndThread est mis à 1 quand le thread doit se terminer. Tu choisis la
valeur que tu mets dans sleep, a mon avis en fonction du taux de
rafraichissement.
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 15 avril 2005 à 13:58
non ce n'est pas aussi simple que cela !
en fait j'utilise les API pour afficher l'image de la cam, la fonction AfficheWebCam(), ne doit etre appeler que une seul fois, et elle envoie en continue l'image prise par la cam et cela en continue !
Bob...
"La chance accorde ses faveur aux esprits avertis..."
Vous n’avez pas trouvé la réponse que vous recherchez ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 avril 2005 à 15:36
Je pense que je ne peux pas t'aider, je ne connais pas
les fonctions que tu utilises la. Je ne comprends pas comment marche
capPreview. Comment et quand cette fonction se termine-t-elle?
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 avril 2005 à 15:58
salut,
normalement le fait que tu termines ton thread ne devrait avoir aucun
impact sur ton objet webcam... celui ci existant ailleurs que dans ton
thread, il ne va pas se détruire quand ton thread s'arrete.... comment
l'objet webcam peut il se rendre compte de la fin du thread?????
essaye de voir si tu obtiens quelque chose en mettant Sleep(INFINITE); avant ton return 0;
'normalement' ca ne devrait pas regler ton probleme. si ca marche, le
Sleep(INFINITE) est a remplacer par un WaitForSingleObject(hEvent,
INFINITE), ou hEvent est un handle crée avec
CreateEvent(NULL, FALSE, FALSE, NULL); (et dans ce cas tu débloques ton
thread depuis l'exterieur (= un autre thread) en faisant un
SetEvent(hEvent); )
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 23 avril 2005 à 02:06
excuser pour le retard de ma réponse, mais bon c'est les vacances et je decroche un peu du PC :)
effectivement cosmobob l'erreur ne vient pas réellement du thread, en fait je met que le AfficheCam et ca marche très bien la donc voila !
merci pour votre aide sinon et bonne prog a vous !
Bob...
"La chance accorde ses faveur aux esprits avertis..."