我有一個程序即將處理大量的數據。我已經有了一些可以停下來的事情,並且可以繼續停下來。中斷用戶輸入,否則繼續
我希望能夠設置它走一段時間(如進程1000個文件),但逃不脫用戶輸入,例如:
for(int i = 0; i < 1000; i++) {
if(checkForUserInput()) { break; }
processFile(i);
/*
* ...
*
*/
}
我知道,你可以提示用戶輸入,並如果它符合某些標準再破...但我希望它默認爲繼續使用,無需用戶輸入運行。
我想我可能已經在Java的很久以前做過同樣的事情,並IIRC我結束了使用線程---那會是在這裏作爲PROCEDE井的唯一途徑?或者有沒有辦法像Cntrl-C一樣尋找鍵盤轉義序列,然後以某種方式表現出來?
編輯:如果是有原因的,爲什麼這樣的事情着完成沒有線程,我很好奇,想知道是什麼原因,作爲井。
謝謝!
好吧。據推測,這只是c歷史上的一個決定,對吧?我的意思是,你不能只是檢查'系統'是否有任何輸入給你,採取行動,如果它確實,或繼續如果不是? – DilithiumMatrix
@zhermes這是因爲C/C++是OS不可知的。用戶輸入被處理和管理由OS,以及線程和中斷(儘管螺紋在C++中,其最近除了最後標準化)。 – littleadv
,可以寫在執行asynchronus IO的包裝流,但我不知道這是否是比使用線程馬上清潔。包裝流將不得不與線程一起工作,只是抽象它們的使用。 – Paranaix