2014-04-28 25 views
1

我的主要應用是從音頻設備解析數據,該設備連續流式傳輸數據。我希望能夠讓用戶按任意鍵來停止應用程序然後停止解析並將所有接收到的數據保存到文件的過程。用Windows C在不同的線程中等待「任意鍵」

的解析循環看起來就像這樣:

while(1) 
{ 
    audio_read(buf); 
} 

所以連續,我要聽一鍵輸入停止此執行。我不想在讀取音頻數據時輪詢密鑰,因爲它必須儘可能快地運行。 我曾嘗試閱讀微軟documentation,但我真的不明白如何輕鬆設置在不同線程中執行函數的代碼。

+0

什麼樣的應用程序? GUI還是控制檯?無論哪種方式,答案都是一樣的。將音頻解析放到工作線程中,並將UI從主線程中移出。 –

+0

控制檯應用程序,以及如何設置這樣的工作線程? – chwi

+0

您需要的Win32 API是'CreateThread'。 –

回答

0

一個線程將等待按鍵,並設置一個布爾標誌。正在處理音頻數據的線程需要定期檢查該標誌是否已設置。

+0

Okey。你有一個關於如何做到這一點的代碼示例? – chwi