
25.09.2009, 17:40
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме: 193434
Репутация:
79
|
|
2mailbrush
а с чего ты взял, что потоки создадутся, запустятся и дойдут до sprintf сразу после _beginthread, там же ещё хренова туча crt мутотени выполнять? Есественно, что цикл выполняется быстрее, чем uid используется в потоке. В данном случае нужно синхронизировать потоки или передавать индивидуальные параметры по типу:
int *q = malloc(5*4);
for(i=0;i<=4;i++)
{
uid++;
q[i] = uid;
_beginthread(tfunc, 0, &q[i]);
}
free(q);
PS НЕ ИСПОЛЬЗУЙ _beginthread БОЛЬШЕ НИКОГДА!!! ОНА УСТАРЕЛА!!! ИСПОЛЬЗУЙ _beginthreadex.
Последний раз редактировалось Hiro Protagonist; 25.09.2009 в 17:55..
|
|
|