WaitCommEvent時のCPU使用率 – プログラミング – Home

通知
すべてクリア

WaitCommEvent時のCPU使用率


DT
 DT
(@DT)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

こんにちは。

現在、シリアル通信制御で非同期処理によるデータ送受信をしています。
実際にCOMポートからデータを受信する際にReadFile関数を使用しているのですが、その
処理に入る前にWaitCommEvent関数を使ってComポートにデータが来たかどうかを監視する
ようにしています。

現状、ステップ実行でWaitCommEventの処理を通るとCPU使用率が100%になり、ポートに対
してデータが入ると処理から抜け、CPUも落ち着いているのですが、WaitCommEvent処理時
にCPU使用率が100%になるのは仕方ないのでしょうか?

ご教授よろしくお願いします。


引用解決済
トピックタグ
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

非同期通信しているんですよね。
1.「OVERLAPPED」構造体の設定で「HEVENT」 のハンドルを設定していますか?
2.ステータスが「ERROR_IO_PENDING」だと無限に待つような構造になっていませんか?
3.OSがWindows2000かWindowsXPじゃないとうまくいかない場合があります。
4.「WaitForSingleObject]で待つようにしていますよね。
  OVERLAPPEDで設定した「HEVENT」を使います。
5.繰返しループで待つ場合は、Sleep(1)(約10mS)ウエイトを入れたほうがいいです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました