Teilen über


C28617

Warnung C28617: Vermeiden Sie die Verwendung des Rückgabewerts von _beginthread(). Verwenden Sie stattdessen _beginthreadex()

Es ist sicherer, _beginthreadex als _beginthreadzu verwenden. Wenn der Thread, der von _beginthread schnell ausgeht, beendet wird, kann der an den Aufrufer von _beginthread zurückgegebene Handle ungültig oder schlechter auf einen anderen Thread verweisen. Das von _beginthreadex zurückgegebene Handle muss jedoch vom Aufrufer von _beginthreadexgeschlossen werden, sodass es garantiert ein gültiges Handle ist, wenn _beginthreadex keinen Fehler zurückgegeben hat.

beispiele für

Im folgenden Codebeispiel wird diese Warnung generiert.

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

Im folgenden Codebeispiel wird die Warnung vermieden.

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