begin process at 2012 05 28 20:51:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Empecher un thread de se terminer


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Empecher un thread de se terminer

vendredi 15 avril 2005 à 11:49:41 | Empecher un thread de se terminer

LordBob

Membre Club
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..."
vendredi 15 avril 2005 à 12:07:25 | Re : Empecher un thread de se terminer

vecchio56

Administrateur CodeS-SourceS
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.
vendredi 15 avril 2005 à 12:15:41 | Re : Empecher un thread de se terminer

LordBob

Membre Club
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..."
vendredi 15 avril 2005 à 12:59:30 | Re : Empecher un thread de se terminer

vecchio56

Administrateur CodeS-SourceS
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.
vendredi 15 avril 2005 à 13:58:11 | Re : Empecher un thread de se terminer

LordBob

Membre Club
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..."
vendredi 15 avril 2005 à 14:04:55 | Re : Empecher un thread de se terminer

vecchio56

Administrateur CodeS-SourceS
Dans ce cas la je comprends pas pourquoi le thread se termine (AfficheWebCam est-elle synchrone?)
vendredi 15 avril 2005 à 15:22:01 | Re : Empecher un thread de se terminer

LordBob

Membre Club
voila le code de la fonction:

// Fonction qui affiche le preview

void CWebCam::AfficheWebCam()
{
// Taille du preview = taille de la résolution
capPreviewScale(hWnd_WC, TRUE);
// Rafraichissement
capPreviewRate(hWnd_WC, 15);
// Affiche
capPreview(hWnd_WC, 1);
}

Bob...

"La chance accorde ses faveur aux esprits avertis..."

vendredi 15 avril 2005 à 15:36:30 | Re : Empecher un thread de se terminer

vecchio56

Administrateur CodeS-SourceS
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?
vendredi 15 avril 2005 à 15:58:48 | Re : Empecher un thread de se terminer

cosmobob

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); )

a+

samedi 23 avril 2005 à 02:06:11 | Re : Empecher un thread de se terminer

LordBob

Membre Club
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..."


Cette discussion est classée dans : application, thread, seulement, terminer, empecher


Répondre à ce message

Sujets en rapport avec ce message

thread et mfc [ par dambeaufort ] svp reponse urgente!!!!!!!!bonjour, je voudrais programmer des thread dans une application mfc mais je n'y arrive pas. pourriez vous me donner un exem terminer un thread [ par galamor ] salut,j'aimerai savoir quels sont les moyens les plus utilisés (traduire : les plus performants et les plus simples) pour dire à une thread de s'arrét thread non terminer [ par sajid_morad ] salutje developpe un programme qui utilise un thread , le probleme c que quand je ferme la fenetre le processus de mon programme reste en exécution en utilisation de Carchive dans un thread : ca veux pas marcher !! [ par Tibobon ] Salut tout le monde, J'essaye de faire une application client/serveur utilisant les CSocket et les CArchive. Ca marche parfaitement mais je souhaitera Terminer un thread [ par vecchio56 ] RebonjourJ'ai crée un thread de la manière suivante:HANDLE hThread = CreateThread(0, 0, ThreadProc, &ts, 0, &dwThreadId);et je monitoring d'une application multi-thread [ par bigzooloo ] Bonjour, J'ai créé une application multi-threads qui utilise des librairies, égalements, multi-threads. J'aurai voulu savoir s'il était possible de s Terminer un logiciel [ par VelveTear ] Bonjour,Bon je ne sait pas si je poste au bon endroit donc desole si je me trompe mais je ne connait pas tres bien le site.J'essaie de me faire une pe Probleme fermeture de Thread!!! [ par Dryko ] Bonjour, Je suis en train de programmer une application MFC dans lequel je créer un thread (avec CreateThread) dans le constructeur de ma classe. Dans attendre un thread [ par Audias06 ] Bonjour,Mon application (C++ SOUS VISUAL NET) nécessite de lancer un thread puis, que pendant ce temps, l'application principale (qui à lancé le thr Application Client/Serveur TCP/IP: pertes de trames [ par LaTatadu91 ] Bonjour, Je développe actuellement une application multithread en C++ sous Visual Studio 2005. Ce programme a pour but d'effectuer des calculs cycliq


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales