1.TerminateThread是个异步运行函数,执行后不能保证线程马上就结束。
2.TerminateThread在c++里面可能会造成资源泄露,比如
#include
#include
using namespace std; class foo { public: foo() { cout << "foo()" << endl; } ~foo() { cout << "~foo()" << endl; } }; DWORD WINAPI MyThread(LPVOID) { foo f; Sleep(1000); return 0; } int main() { HANDLE hThread; DWORD dwThreadId; hThread = CreateThread(NULL, 0, MyThread, NULL, 0, &dwThreadId); Sleep(100); //TerminateThread(hThread, 0); 增加了这句,程序就不会执行~foo(); getchar();//等待一下 }
以上代码,如果类foo里面有分配内存等资源,会造成不能执行析构函数,导致资源泄露。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213970.html原文链接:https://javaforall.net
