Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“等待”;“任何键”;在不同线程中使用Windows C_C_Windows_Multithreading - Fatal编程技术网

“等待”;“任何键”;在不同线程中使用Windows C

“等待”;“任何键”;在不同线程中使用Windows C,c,windows,multithreading,C,Windows,Multithreading,我的主要应用程序是解析来自音频设备的数据,该设备不断地流式传输数据。我希望能够让用户按任意键停止进程,然后我的应用程序将停止解析并将所有接收到的数据保存到一个文件中 解析循环看起来很像这样: while(1) { audio_read(buf); } 因此,连续地,我想要监听一个键输入来停止这个执行。我不想在读取音频数据时轮询键,因为这必须尽可能快地运行。 我试过阅读Microsofts,但我真的不明白如何轻松地设置代码,以便在不同的线程中执行函数 一个线程将等待按键,并设置一个布尔标

我的主要应用程序是解析来自音频设备的数据,该设备不断地流式传输数据。我希望能够让用户按任意键停止进程,然后我的应用程序将停止解析并将所有接收到的数据保存到一个文件中

解析循环看起来很像这样:

while(1)
{
    audio_read(buf);
}
因此,连续地,我想要监听一个键输入来停止这个执行。我不想在读取音频数据时轮询键,因为这必须尽可能快地运行。
我试过阅读Microsofts,但我真的不明白如何轻松地设置代码,以便在不同的线程中执行函数

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

什么类型的应用程序?GUI还是控制台?不管怎样,答案都差不多。将音频解析放在工作线程中,并从主线程控制台应用程序中处理UI,我如何设置这样的工作线程?您需要的Win32 API是
CreateThread
.Okey。你有没有一个代码示例来说明我是如何做到这一点的?