[英]Holding scrollbar freezes win32 console application
我寫了這個小程序來說明我的問題:
int main(int argc, char* argv[])
{
int i = 0;
while(1)
{
std::cout << i++ << std::endl;
Sleep(1000);
}
return 0;
}
因此,如果您按住垂直滾動條(查看日志或其他內容......),這個簡單的程序將停止計數。
有辦法避免這種情況嗎?
干杯
並不是的。 會發生什么是持有滾動條會阻止應用程序將任何新輸出寫入控制台,因此它最終會阻塞刷新std :: cout。 這是由於Windows如何實現控制台而無法避免的。
如果你不能依賴程序的繼續執行,你可以根據從初始程序經過的時間來計算i
:
#include <ctime>
time_t initialSeconds;
int main(int argc, char* argv[])
{
double i=0;
//Initialise time
initialSeconds = time (NULL);
while(1) {
i = difftime(initialSeconds, time(NULL));
sleep(1000);
}
}
這將根據計算機時鍾計算經過的秒數。
(沒有測試過,因為我不在帶編譯器的機器上)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.