Понимание примера функции MSDN _beginthreadex
Там эта функция на _beginthreadex
Страница MSDN:
unsigned __stdcall SecondThreadFunc( void* pArguments )
{
printf( "In second thread...\n" );
while ( Counter < 1000000 )
Counter++;
_endthreadex( 0 );
return 0;
}
Я знаю, что вы можете получить значение, возвращаемое _endthreadex
с функцией GetExitCodeThread
, но как вы получаете значение, возвращаемое return
?
Другой вопрос: не _endthreadex
конец нити, почему они положили return 0
после этого?
2 ответа
Решение
return 0
есть ли просто сделать компилятор счастливым. _endthreadex
не возвращается.
В этом фрагменте return
утверждение действительно только для того, чтобы сделать компилятор счастливым. Однако на самом деле вам не нужно звонить _endthreadex
как это называется внутри _beginthreadex
после того, как вы вернетесь из своей функции потока. И он передает ваше возвращаемое значение _endthreadex
(или же ExitThread
, от него).
Смотрите статью Рэймонда Чена