Funzione SHCreateThread (shlwapi.h)
Crea un thread.
Sintassi
BOOL SHCreateThread(
[in] LPTHREAD_START_ROUTINE pfnThreadProc,
[in, optional] void *pData,
[in] SHCT_FLAGS flags,
[in, optional] LPTHREAD_START_ROUTINE pfnCallback
);
Parametri
[in] pfnThreadProc
Tipo: LPTHREAD_START_ROUTINE
Puntatore a una funzione definita dall'applicazione del tipo LPTHREAD_START_ROUTINE . Se è stato creato correttamente un nuovo thread, questa funzione definita dall'applicazione viene chiamata nel contesto di tale thread. SHCreateThread non attende il completamento della funzione a cui punta questo parametro prima di tornare al chiamante. Il valore restituito della funzione definita dall'applicazione è il codice di uscita del thread.
[in, optional] pData
Tipo: void*
Puntatore a una struttura di dati facoltativa definita dall'applicazione che contiene i dati di inizializzazione. Viene passato alla funzione a cui punta pfnThreadProc e, facoltativamente, pfnCallback. Questo valore può essere NULL.
[in] flags
Tipo: SHCT_FLAGS
Flag che controllano il comportamento della funzione. Una o più costanti CTF .
[in, optional] pfnCallback
Tipo: LPTHREAD_START_ROUTINE
Puntatore a una funzione facoltativa definita dall'applicazione del tipo LPTHREAD_START_ROUTINE . Questa funzione viene chiamata nel contesto del thread creato prima che venga chiamata la funzione a cui punta pfnThreadProc . Riceverà anche pData come argomento. SHCreateThread attenderà che la funzione a cui fa riferimento pfnCallback venga restituita prima di tornare al chiamante. Il valore restituito della funzione a cui punta pfnCallback viene ignorato.
Valore restituito
Tipo: BOOL
Restituisce TRUE se il thread viene creato correttamente o FALSE in caso contrario. In caso di errore, usare GetLastError per recuperare il valore di errore specifico, come illustrato di seguito.
if (!SHCreateThread(...))
{
hr = HRESULT_FROM_WIN32( GetLastError() );
}
else
{
....
}
Commenti
La funzione a cui punta pfnThreadProc e pfnCallback deve assumere il formato seguente.
DWORD WINAPI ThreadProc(LPVOID pData)
{
...
}
Il nome della funzione è arbitrario. Il parametro pData punta a una struttura di dati definita dall'applicazione con informazioni di inizializzazione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional, Windows XP [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shlwapi.h |
Libreria | Shlwapi.lib |
DLL | Shlwapi.dll (versione 5.0 o successiva) |