gpt4 book ai didi

c# - 非阻塞 io 函数而不是 cin.get()

转载 作者:太空狗 更新时间:2023-10-29 23:19:13 25 4
gpt4 key购买 nike

我有一个 C++ 控制台应用程序,它有一个选项可以通过按任意键来中断(通过使用 kbhit() 实现),在这种情况下,它会打印它所做的并退出(或者可以留下来完成工作(一些录音)并且仍然打印反馈)。我正在为该控制台应用程序制作一个 c# gui 应用程序(我正在从 c# 表单调用 exe 文件),而不是按键盘上的任何键,我使用的是“停止”按钮,它发送 Environment.NewLine(或“\n ") 到重定向的输入,在 C++ 应用程序中,我现在必须使用不同于 kbhit() 的东西才能工作。我尝试使用 cin.get(),例如:

if (kbhit() || (cin.get() > 0))  
stop_recording=true;

但 cin.get() 是一个阻塞函数,如果我想让控制台应用程序运行到最后,它不会在不按停止按钮的情况下关闭。是否有任何类似于 cin.get() 的函数实际上没有阻塞,或者可能有不同的方式将“任意键”从 c# 发送到我的控制台应用程序进程?

最佳答案

使用 getch() 代替 cin.get()。它是一个阻塞命令,但仅通过执行它 if ( kbhit() )它会立即返回。

关于c# - 非阻塞 io 函数而不是 cin.get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com