40Fermer42
squalylLe 13/05/2009 à 13:39
que fait ce test chez toi, Zephyr?

http://sourceforge.net/mailarchive/forum.php?thread_name=4A0A8E05.2070104%40remedy.nl&forum_name=cegcc-devel

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int a = 0, b = 0, c = 0;
HANDLE h[2];

DWORD thread_fun1(void *param)
{
int i;

printf ("I am %d\n", GetCurrentThreadId ());

for (i=1; i<=9; i++) {
Sleep(700);
a++;
// fprintf(stderr, "Fun1 : %d\n", i);
}
}

DWORD thread_fun2(void *param)
{
int i, *j = NULL;

printf ("I am %d\n", GetCurrentThreadId ());

for (i=1; i<=10; i++) {
Sleep(1000);
b++;
// fprintf(stderr, "Fun2 : %d\n", i);
}
}

main(int argc, char *argv[])
{
int i;
printf ("Starting process with id %d\n", GetCurrentProcessId());
fprintf(stderr, "Start\n");
h[0] = CreateThread(NULL, 0, thread_fun1, NULL, 0, NULL);
h[1] = CreateThread(NULL, 0, thread_fun2, NULL, 0, NULL);

for (i=0; i<10; i++) {
Sleep(500);
c++;
fprintf(stderr, "Main %d %d %d\n", a, b, c);
}
fprintf(stderr, "After for loop\n");

WaitForMultipleObjects(2, h, FALSE, 0xFFFFFFFF);
fprintf(stderr, "Stop\n");
}

si j'étais toi je testerai avec printf puis avec du std::cout