2 programmes interagi entre eux
bonjour à tous,
J’ai un programme lance avec un thread en pause avec une mutex bloquer.
J’ai un second programme qui va débloquer le thread de l’autre programme
Voici le code du premier programme lancé.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
HANDLE mut;
char text[5000];
unsigned long WINAPI Thread_mutex (void * Param)
{
cout << " lencement thread \n" ;
cout << " WaitForSingleObject thread \n" ;
WaitForSingleObject(mut,INFINITE);
cout << " WaitForSingleObject thread effectué\n" ;
cout << " traitement de la thread\n" ;
cout << " ReleaseMutex thread \n" ;
ReleaseMutex(mut);
cout << " ReleaseMutex thread effectué\n\n" ;
return 3;
}
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hThread[1];
unsigned long ThreadId;
cout << "\n\n\ncreation de mutex(CreateMutex)" << endl;
mut=CreateMutex(NULL,FALSE,(LPCWSTR)"mutex");
WaitForSingleObject(mut,INFINITE);
cout << "main: creation de 1 threads (CreateThread) avec mutex" << endl;
hThread[0] = CreateThread(NULL,NULL,Thread_mutex,NULL, NULL, &ThreadId);
cout << "ID1 : " << ThreadId << "\n" << endl;
cout << "attente de tout les threads (WaitForMultipleObjects)" << endl;
WaitForMultipleObjects(1, hThread, TRUE, INFINITE);
cout << "fermeture mutex(CloseHandle)" << endl;
CloseHandle(mut);
cout << "fin" << endl;
system ("pause");
return 0;
} |
Et voici le code du second programme.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
HANDLE mut;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "\n\n\ncreation de mutex(CreateMutex)" << endl;
mut=CreateMutex(NULL,FALSE,(LPCWSTR)"mutex");
cout << " ReleaseMutex thread \n" ;
ReleaseMutex(mut);
system ("pause");
return 0;
} |
Et sa fonctionne pas !
Est-ce que mon résonnement et bon ? et ou est les problème des mon code pour que sa fonctionne pas ??
merci d'avance
lermit