我这个多线程程序,为什么先退出程序后输出结果?
int count [200];int g_sum = 200;CRITICAL_SECTION g_cs;DWORD __stdcall SecondThread(void*);DWORD __stdcall FirstThread(void*){ EnterCriticalSection(&g_cs); DWORD d; CreateThread(0, 0, SecondThread, 0, 0, &d); for(int n = 1; n<= g_sum; n++) { Sleep(1); count[n-1] = n; } LeaveCriticalSection(&g_cs); return 0;}DWORD __stdcall SecondThread(void*){ EnterCriticalSection(&g_cs); for(int n = 1; n<= g_sum; n++) cout<< count[n-1] <<"\t"; LeaveCriticalSection(&g_cs); return 0;}void main(){ ::_wsetlocale(LC_ALL, L""); InitializeCriticalSection(&g_cs); DWORD d; CreateThread(0, 0, FirstThread, 0, 0, &d); Sleep(2000); system("pause");}
void main(){ ::_wsetlocale(LC_ALL, L""); InitializeCriticalSection(&g_cs); DWORD d; // 创建并记录线程 HANDLE threadTemp = CreateThread(0, 0, FirstThread, 0, 0, &d); // 等待线程结束 WaitForSingleObject(threadTemp, INFINITE); // 关闭句柄 CloseHandle(threadTemp); system("pause");}