我在哪里使用_endthreadex - windows API

10 c c++ windows multithreading

我是Windows API的新手,最近我了解到我不应该使用CreateThread和TerminateThread.我切换到了_beginthreadex,但是我不确定我该怎么做use _endthreadex

例如,这是我正在测试的基本功能:

// MyThreadFunction - outputs "#.) I Work" and ends
unsigned int __stdcall MyThreadFunction( void * lpParam ) 
{
    int i = (int)lpParam;
    cout << i << ".) I work! " << endl;
    _endthreadex(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的位置_endthreadex是否正确?在返回0之前我有它,这对我来说似乎很奇怪?我在msdn页面中读到,_endthreadex当函数结束时会自动调用它,但是你应该调用它来更好地清理内存,这就是我尝试将它放入的原因.它只是看起来不对,对不起,如果这是一个不好的问题.我只是想确保我尽我所能做正确的事

Jer*_*ner 9

你实际上根本不需要打电话_endthreadex().无论如何,在线程函数返回后,它将自动为您调用.