вопрос по примеру из MSDN...
От: Аноним  
Дата: 02.09.05 08:32
Оценка:
// The following sample code demonstrates how you can use the thread handle returned by _beginthreadex with the synchronization 
// API WaitForSingleObject. 
// The main thread waits for the second thread to terminate before it continues. 
// When the second thread calls _endthreadex, it causes its thread object to go to the signaled state. 
// This allows the primary thread to continue running. 
// This cannot be done with _beginthread and _endthread, because _endthread calls CloseHandle, destroying the thread object before 
// it can be set to the signaled state. 
//
// crt_begthrdex.cpp
// compile with: /MT
#include <windows.h>
#include <stdio.h>
#include <process.h>

unsigned Counter; 
unsigned __stdcall SecondThreadFunc( void* pArguments )
{
    printf( "In second thread...\n" );

    while ( Counter < 1000000 )
        Counter++;

    _endthreadex( 0 );
    return 0;
} 

int main()
{ 
    HANDLE hThread;
    unsigned threadID;

    printf( "Creating second thread...\n" );

    // Create the second thread.
    hThread = (HANDLE)_beginthreadex( NULL, 0, &SecondThreadFunc, NULL, 0, &threadID );

    // Wait until second thread terminates. If you comment out the line
    // below, Counter will not be correct because the thread has not
    // terminated, and Counter most likely has not been incremented to
    // 1000000 yet.
    WaitForSingleObject( hThread, INFINITE );
    printf( "Counter should be 1000000; it is-> %d\n", Counter );
    // Destroy the thread object.
    CloseHandle( hThread );
}

Это пример из MSDN. А вопрос такой.
1. Если из функции потока SecondThreadFunc() выходить без использования _endthreadex(0), а просто по return, то при этом thread object to go to the signaled state или нет? Хэндл потока установится в сигнальное состояние или нет?

2. Если из функции потока SecondThreadFunc() выходить без использования _endthreadex(0), а просто по return, то надо ли вызывать после этого CloseHandle( hThread );?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.