任务
判断线程是否结束运行
代码
#include "windows.h"
#include "iostream"
#include "atlstr.h"
using namespace std;
DWORD WINAPI thread(LPVOID);
int main(int argc, char **argv) {
HANDLE thread1, thread2;
DWORD exit_code1 = 0, exit_code2 = 0;
DWORD thread_id1, thread_id2;
thread1 = CreateThread(NULL, 0, thread, (LPVOID)1, 0, &thread_id1);
if (thread1)cout << "Thread 1 launched\n";
thread2 = CreateThread(NULL, 0, thread, (LPVOID)1, 0, &thread_id2);
if (thread2) {
ResumeThread(thread2); //使线程进入运行状态
cout << "Thread 2 launched\n";
}
for (;;) {
GetExitCodeThread(thread1, &exit_code1);
GetExitCodeThread(thread2, &exit_code2);
if (exit_code1 == STILL_ACTIVE)
cout << "Thread1 is running" << endl;
else
cout << "线程1退出码:" << exit_code1 << endl;
if (exit_code2 == STILL_ACTIVE)
cout << "Thread2 is runnging" << endl;
else
cout << "线程2退出码:" << exit_code2 << endl;
if (exit_code1 != STILL_ACTIVE && exit_code2 != STILL_ACTIVE) {
break;
}
}
return 0;
}
DWORD WINAPI thread(LPVOID n) {
int m = (DWORD)n;
Sleep(10 * (5 - m));
return m * 10;
}