Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3978 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] VS6 Multithreading

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] VS6 Multithreading

n°20643
H4dd3R
Q2
Posté le 27-03-2001 à 09:17:53  profilanswer
 

Chalut..
 
J´aimerais utiliser la classe:
class CSingleLock
{
// Constructors
public:
 CSingleLock(CSyncObject* pObject, BOOL bInitialLock = FALSE);

Seulement il me faut une instance d´un CSyncObject (je sais pas trop pquoi).
Mais CSyncObject a la fonction Unlock() purement virtuelle.. Pourquoi et comment utiliser CSingleLock???


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
mood
Publicité
Posté le 27-03-2001 à 09:17:53  profilanswer
 

n°20644
H4dd3R
Q2
Posté le 27-03-2001 à 09:20:56  profilanswer
 

Meuarf j´ai instancié un CMutex histoire d´avoir une instance de CSyncObject.. Ca a l´air de marcher..
Quelqu´un peut m´éclairer sur le sens de tt ça???

n°20649
BENB
100% Lux.
Posté le 27-03-2001 à 09:36:34  profilanswer
 

Je connais mieux le multithreading POSIX que celui de MS.
Mais de toute evidence il y a plusieurs types de synchronisations
etCSyncObject est une classe abstraite representant une synchronisation. Le Cmutex est une classe de synchronisation concrete, mais il y en peut etre d'autres. En POSIX il y a des verrous. Plusieurs Threads peuvent lire simultanement, mais pour ecrire on s'assure qu'il n'y a pas d'autre threads en lecture/ecriture... etc.
 
Donc il faut que tu cherches quels sont les heritiers de CSyncObject... et tous doivent marcher (en theorie bien sur...)

n°20653
H4dd3R
Q2
Posté le 27-03-2001 à 09:41:03  profilanswer
 

Mouais ok merci BENB!!

n°20756
H4dd3R
Q2
Posté le 27-03-2001 à 15:18:45  profilanswer
 

Non, ça marche pas!! A l´instanciation, il rentre dans:
CSingleLock::CSingleLock(CSyncObject* pObject, BOOL bInitialLock)
{
 ASSERT(pObject != NULL);
 ASSERT(pObject->IsKindOf(RUNTIME_CLASS(CSyncObject)));

Et mon pObject, adresse d´un CMutex, ne lui convient pas.. :(
HELP!!

n°20763
verdoux
And I'm still waiting
Posté le 27-03-2001 à 15:43:17  profilanswer
 

L'erreur doit être ailleurs, les classes dérivées de CSyncObject sont CEvent, CMutex,CCriticalSection, et CSemaphore. Donc un CMutex doit convenir.

n°20764
H4dd3R
Q2
Posté le 27-03-2001 à 15:47:12  profilanswer
 

Voici mon source, je vois pas trop d´ou peut venir l´erreur:
#include <afxmt.h>
class wouf: public CSingleLock
{
 CMutex M;
public:
 wouf();
};
 
wouf::wouf()
 :CSingleLock(&M)
{
}
 
BOOL CTestSingleLock0App::InitInstance()
{
 wouf w;
 
 return FALSE;
}

 
Qqun a une idée???

n°20767
H4dd3R
Q2
Posté le 27-03-2001 à 15:53:50  profilanswer
 

J´ai trouvé c parce que le CMutex n´est pas encore correctement initialisé à la construction du CSingleLock.. :( :(
Si j´instancie le CMutex avant c ok..


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] VS6 Multithreading

 

Sujets relatifs
[VB / ADO / Multithreading] Faire un thread 
Plus de sujets relatifs à : [C++] VS6 Multithreading


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)