Понимание примера функции 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, от него).

Смотрите статью Рэймонда Чена

Другие вопросы по тегам