Partager via


C28617

avertissement C28617 : Évitez d’utiliser la valeur de retour de _beginthread(). Utilisez _beginthreadex() à la place

Il est plus sûr d’utiliser _beginthreadex que _beginthread. Si le thread généré par _beginthread se ferme rapidement, le handle retourné à l’appelant de _beginthread peut être non valide ou, pire, pointer vers un autre thread. Toutefois, le handle retourné par _beginthreadex doit être fermé par l’appelant de _beginthreadex. Il est donc garanti qu’il s’agit d’un handle valide si _beginthreadex n’a pas retourné d’erreur.

Exemples

L’exemple de code suivant génère cet avertissement.

hThread = (HANDLE)_beginthread (&SecondThreadFunc, 0, &args);
WaitForSingleObject (hThread, INFINITE);

L’exemple de code suivant évite l’avertissement.

hThread = (HANDLE)_beginthreadex ( NULL, 0,
                                   &SecondThreadFunc,
                                   &args, 0, &threadID);
WaitForSingleObject (hThread, INFINITE);
CloseHandle(hThread);