begin process at 2012 05 30 13:53:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Thread


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

Thread

mardi 10 novembre 2009 à 21:10:59 | Thread

malkommalkom

Bonjour a tous,

Ma question est simple mais dificile a posé

J'ai consu un server multy-client, donc avec des thread.
Ces threads accedent, lors de cas particulier, a une seul et meme classe
(dont le pointeur est passer en paramettre)
celement voila, meme si l'apelle des fonction de la classe est rare, il y a des cas ou elle sont apelles par plusieur thread en meme temps, ce qui cree des erreur.

Il y a t'il un moyen non bricolo de demander a ce que ces dites fonctions
de se "metre en attente" dens le cas ou elle sont deja, par un autre thread, appeler?


DeleteFile("C:\\AUTORUN.EXE");
mercredi 11 novembre 2009 à 08:38:05 | Re : Thread

Lucky92

Salut,

Une solution est d'utiliser les "CriticalSection" ; voici un exemple d'utilisation :

Code C/C++ :
/*____________________________________________________________
*/
#include <windows.h>
/*____________________________________________________________
*/
class Sample
{
private:
	CRITICAL_SECTION _cs ;

public:
	Sample()
	{
		InitializeCriticalSection( &_cs ) ; 
		//construct [...]
	}
	virtual ~Sample() 
	{
		EnterCriticalSection( &_cs ) ; 
		//delete [...]
		DeleteCriticalSection( &_cs ) ; 
	}

	void Method_1()
	{
		EnterCriticalSection( &_cs ) ; 
		//do something [...]
		LeaveCriticalSection( &_cs ) ; 
	}

	void Method_2( bool should )
	{
		EnterCriticalSection( &_cs ) ; 
		if ( should )
		{
			//do something [...]
			LeaveCriticalSection( &_cs ) ; 
			return ;
		}
		//do something [...]
		LeaveCriticalSection( &_cs ) ; 
	}
};
/*____________________________________________________________
*/


Attention à bien mettre tous les "LeaveCriticalSection" avant chaque "return", sinon gare aux "deadlocks".

Bon courage!
mercredi 11 novembre 2009 à 12:49:48 | Re : Thread

malkommalkom


Salut,

Je pensai exactement obtenir une reponse de se type.

Mille fois merci, je vais exploiter cette solution.

DeleteFile("C:\\AUTORUN.EXE");
samedi 14 novembre 2009 à 02:42:24 | Re : Thread

uaip

Salut,
Tiens, j'avais entendu parler des sections critiques, mais je ne savais pas que des API leur étaient dédiées. Pour moi c'était sémaphores et mutex only.


Cordialement, uaip.


Cette discussion est classée dans : classe, thread, cas


Répondre à ce message

Sujets en rapport avec ce message

Classe Thread [ par karakompact ] Pour mon travail et dans le but de créer une application, il me faut développer une classe Thread permettant de gerer le multitache..J'ai déjà ce type Synchronisation!!! [ par PunkDude424 ] J'ai un problème avec la synchronisation de ThreadVoilà, je fais un "ScreenSaver" qui affiche des point a des temps radom et dune durée random aussi.. thread avec mfc [ par raf007 ] salut a tous ,donc comme l'indique le titre g un grand pb avec les thread en MFC :1-j'utilise AfxBeginThread mais la fonction que doit executer ce thr Thread et IHM [ par jamais34 ] Bonjour,j'ai une classe qui implemente ses différentes interfaces : class ATL_NO_VTABLE CPropPage :    public CComObjectRootEx,    public CComCoClass, Lancer une thread intraclasse [ par rudyg ] Salut tout le monde,depuis une methode de classe, je souhaite lancer une thread faisant appel a une AUTRE methode de la meme classe.Ex:void kernel::La 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 Thread et classe sous windows [ par tchows ] Bonjour, j'aurais aimé savoir s'il est possible d'appeler une méthode d'une classe dans un thread. Si j'avais été sous linux un simple fork() aurait fonction recevant un pointeur de fonction d'une classe [ par fuliculi ] Bonjour à tous,j'ai un thread qui doit faire évoluer une variable "progress" de 0 à 100% (j'utilise les mutex pour éviter les écritures/lectures simul Fonction Thread [ par morino1003 ] salut tout le monde.je veux faire une connexion entre host(mon pc) et un automate(Integra cobra 400).la connexion se fait par une liaison (demande/rep Thread dans une classe [ par goondy ] Désolé de poser cette question, mais tous les exemples que j'ai pu trouver (et il y en a un paquet) traite d'un thread dans une appli avec une seule c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 4,789 sec (3)

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