2014-04-28 27 views
1

我的主要应用是从音频设备解析数据,该设备连续流式传输数据。我希望能够让用户按任意键来停止应用程序然后停止解析并将所有接收到的数据保存到文件的过程。用Windows C在不同的线程中等待“任意键”

的解析循环看起来就像这样:

while(1) 
{ 
    audio_read(buf); 
} 

所以连续,我要听一键输入停止此执行。我不想在读取音频数据时轮询密钥,因为它必须尽可能快地运行。 我曾尝试阅读微软documentation,但我真的不明白如何轻松设置在不同线程中执行函数的代码。

+0

什么样的应用程序? GUI还是控制台?无论哪种方式,答案都是一样的。将音频解析放到工作线程中,并将UI从主线程中移出。 –

+0

控制台应用程序,以及如何设置这样的工作线程? – chwi

+0

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

回答

0

一个线程将等待按键,并设置一个布尔标志。正在处理音频数据的线程需要定期检查该标志是否已设置。

+0

Okey。你有一个关于如何做到这一点的代码示例? – chwi