C++ - プログラムを閉じるときに SetConsoleHandler を呼び出すと WINAPI 例外が発生する
仅有的幸福
仅有的幸福 2017-05-16 13:24:41
0
1
607

マルチスレッドを使用してデータを取得し、それを配列に保存するプログラムを作成しました。その後、コンソール プログラムを閉じるとイベントがトリガーされ、このイベントで配列内のデータをファイルに書き込みました。 。
しかし、このプログラムを 10 分未満実行した場合、ファイルの書き込みは正常に行われますが、20 分以上プログラムを閉じると、いくつかのファイルが出力されるだけで、プログラム自体が終了します。

以下はこれらの場所に関係するコードです:
これはメイン関数の SetConsoleCtrlHandler への呼び出しです

リーリー

これが具体的な関数の実装です

リーリー

この問題を経験した人はいますか?
これはバッファか何かに関連していますか?なぜなら、直感的には、時間の経過とともにより多くのデータが受信される可能性があるからです。

仅有的幸福
仅有的幸福

全員に返信(1)
刘奇

CTRL_CLOSE_EVENT にはタイムアウト機構があるため、データの書き込みにどれだけ時間がかかっても、プログラムは 5 秒後にシャットダウンします。
代わりに CTRL_C_EVENT を使用できます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!