私は、任意のキーを押すことで中断するオプションを持つC++コンソールアプリケーションを持っています(kbhit()を使用して実装されています)。それでもフィードバックを出力します)。そのコンソール アプリケーション用に ac# gui アプリケーションを作成しており (c# フォームから exe ファイルを呼び出しています)、キーボードの任意のキーを押す代わりに、Environment.NewLine (または "\n ") リダイレクトされた入力と C++ アプリケーションでは、動作させるために kbhit() とは別のものを使用する必要があります。次のように、cin.get() を使用してみました。
if (kbhit() || (cin.get() > 0))
stop_recording=true;
しかし、cin.get() はブロッキング関数であり、コンソール アプリケーションを最後まで実行したい場合、停止ボタンを押さないと閉じません。実際にブロックしていない cin.get() に似た関数はありますか、それとも c# からコンソール アプリケーション プロセスに「任意のキー」を送信する別の方法でしょうか?