HANDLE CreateThread(LPSECURITY_ATTRIBUTES AttributsThread, DWORD TaillePile, LPTHREAD_START_ROUTINE PrincipalThread, LPVOID Parametres, DWORD Options, LPDWORD NumeroThread);
Le résultat est le handle sur le thread.
#include <windows.h>
#include <winbase.h>
SECURITY_ATTRIBUTES AttributDeSecurites;
HANDLE Handle;
DWORD NumeroThread;
static DWORD WINAPI PrincipalThread(LPVOID Parametres)
{
...
return(0);
}
...
AttributDeSecurites.nLength=sizeof(SECURITY_ATTRIBUTES);
AttributDeSecurites.bInheritHandle=TRUE;
AttributDeSecurites.lpSecurityDescriptor=NULL;
Handle=CreateThread(&AttributDeSecurites, 0, PrincipalThread, (PVOID)"Bonjour le monde", 0, &NumeroThread);
if (!Handle)
{
...
}
...
if (!TerminateThread(Handle, 0))
{
...
}
...
L'espace de données est partagé par tous les threads, aussi, il est nécessaire de les synchroniser.