Bagikan melalui


C28617

peringatan C28617: Hindari menggunakan nilai pengembalian _beginthread(). Gunakan _beginthreadex() sebagai gantinya

Lebih aman untuk menggunakan _beginthreadex daripada _beginthread. Jika utas yang dihasilkan oleh _beginthread keluar dengan cepat, handel yang dikembalikan ke pemanggil _beginthread mungkin tidak valid atau, lebih buruk, arahkan ke utas lain. Namun, handel yang dikembalikan oleh _beginthreadex harus ditutup oleh pemanggil _beginthreadex, sehingga dijamin menjadi handel yang valid jika _beginthreadex tidak mengembalikan kesalahan.

Contoh

Contoh kode berikut menghasilkan peringatan ini.

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

Contoh kode berikut menghindari peringatan.

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