你好,我正試圖在執行過程中打破循環。循環顯示從5-1秒開始倒計時。我想要使用輸入的任何按鍵打破循環。我研究了一段時間並創建了一個線程。我設置了一個全局變量並在第二個線程中更新它。我使用該全局變量在主函數中給出了一個條件,但循環不會中斷。在執行過程中出現循環錯誤
這是代碼。 請幫忙。
#include<iostream>
#include<windows.h>
#include<stdlib.h>
#include<iomanip>
#include<stdio.h>
using namespace std;
bool stop=false;
DWORD WINAPI thread1(LPVOID pm)
{
//check the getchar value
int a = getchar();
while (a != '0'){
a = getchar();
}
stop = true;
return 0;
}
int main()
{
HANDLE handle = CreateThread(NULL, 0, thread1, NULL, 0, NULL);
for(int i=5;i>0 && !stop;i--)
{
cout<<"\n\n\n\n\n\n";
cout<<setw(35);
cout<<i;
Sleep(1000);
system("CLS");
}
system("PAUSE");
}
程序倒計時,在中間的倒計數我試圖打破loop.thread1函數接受一個輸入和修改停止(全局變量)。但主函數中的循環不會中斷(它應該)。循環繼續減少循環變量,變爲零,循環結束。
我們可以有你獲得什麼,你想要的一些例子嗎? – Garf365
而且,personnaly,我將反線程,立即殺死線程主線 – Garf365
@ Garf365我要打破main()中的循環。請詳細說明反螺紋部分。 – anjanik012