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)

Vedi anche

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

Shell e versioni dei controlli comuni