MFC无法结束线程
具体是这样的, 在按钮点击结束线程是可以的,
但是如果在别的源文件调用就不行了 ,比如A.cpp 写了一个关闭全部线程的函数 , 点击按钮是可以关闭的
我发现如果别的源文件调用开始线程的函数, 在按钮那边也不能结束了,
或者按钮点了开始多线程, B.cpp调用A.cpp的结束线程函数也会失效
我把A.cpp的函数写成类成员, B.cpp调用也不能结束
.....简单的说就是多线程开始和结束的函数都写在A.cpp, 如果A开始的话, B不能结束, B开始的话, A也不能结束
A.cpp的
DWORD CMainDialogWnd::开始脚本()
{
Thread11 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)线程11, NULL, NULL, NULL);
Thread12 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)线程12, NULL, NULL, NULL);
Thread13 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)线程13, NULL, NULL, NULL);
Thread14 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)线程14, NULL, NULL, NULL);
Thread15 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)线程15, NULL, NULL, NULL);
Thread16 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)线程16, NULL, NULL, NULL);
return 1;
}
DWORD CMainDialogWnd ::Stop()
{
TerminateThread(Thread11, 1); TerminateThread(Thread14, 1);
TerminateThread(Thread12, 1); TerminateThread(Thread15, 1);
TerminateThread(Thread13, 1); TerminateThread(Thread16, 1);
return 1;
}
// =================================================================================
B.cpp的 :
BOOL __Clear()
{
CMainDialogWnd aa;
aa.Stop();
return TRUE;
}
有错误吗, 就是A开始线程A能停止, 但是B不能调用它停止.....