#include<windows.h> #include<process.h> #include<iostream> using namespace std; bool stop; unsigned Counter; unsigned __stdcall thread(void*) { cout <<"In second thread..." <<endl; while (!stop){ Sleep(200); cout <<Counter++ <<" " <<flush; } //_endthreadex(0); return 0; } int main() { HANDLE hThread; unsigned int threadID; stop = false; cout <<"Creating second thread..." <<endl; // Create the second thread. hThread = (HANDLE)_beginthreadex(NULL, 0, &thread, NULL, 0, &threadID); // Wait until second thread terminates. If you comment out the line // below, Counter will not be correct because the thread has not // terminated, and Counter most likely has not been incremented to // 1000000 yet. //WaitForSingleObject(hThread, INFINITE); system("pause"); stop = true; //cin >>stop; cout <<"Counter is-> " <<Counter <<endl; // Destroy the thread object. CloseHandle(hThread); system("pause"); return 0; }