dポイントプレゼントキャンペーン実施中!

教えて下さい。
VBで構築したアプリケーションにおいて、無限ループ内で処理を判断し、実行するようなプログラム構築にしています。この無限ループ内に「DoEvents」をセットしています。これによりOSに溜まっている、各イベントを処理していると思うのですが、処理するイベントに取りこぼしは発生しないのでしょうか?
現在、A/Dボードを実装しており、2ms周期でVBのイベントが発生するようなソフトになっています。「DoEvents」実行時に、OS側が処理に要する時間は、キューに溜まっているイベント数×1回のイベント処理時間で単純に導けるものでしょうか?
また、CPUのスペックを2倍にすると、単純に処理時間は半分と計算できるものでしょうか?

A 回答 (3件)

A/Dボードから2ms周期で割り込みかかるような使い方でしょうか?



取りこぼしが起きるかどうかはよくわかりませんが、OSとドライバにもよるかも知れません。
例えば,イベントの処理が終わらないうちに次のイベントが来た場合どうなるか。
ある程度はキューイングしても、処理が追いつかないとあふれて捨てられるイベントがあるかも知れませんし。

取りこぼしそのものは割り込み回数を実際にカウントして見れば検討つくと思うので実測してみては。
例えば10秒毎に何回イベント処理をしたかカウントするとか、5000回イベント処理した時間を計測してみるとか。


処理時間は、OS側が処理に要する時間がCPUの消費時間と考えるならそれで計算できると思います。


>CPUのスペックを2倍にすると、単純に処理時間は半分と計算できるものでしょうか?

クロックが2倍になっても、処理時間が半分までならないことがほとんどだと思います。

市販品のA/Dボード使っているなら,製品名がわかればもう少し判断つくかも知れません。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
>A/Dボードから2ms周期で割り込みかかるような使い方でしょうか?
→ その通りです。
使用しているA/Dボードですが、
 メーカ:日本ナショナルインスツルメンツ
 型式:778075-01(PCI-6034E)
です。

お礼日時:2003/11/05 09:12

マルチメディアタイマのような、すばらしい割り込み発生コントロールもあれば、VB標準の糞コントロールも存在する昨今。

。。

機器との連携については、メーカに直接問い合わせた方がいいような気がします。
    • good
    • 0
この回答へのお礼

そうですよね。
しかし、メーカからの回答も今一でして...
はっきりとは、分からないらしいです。
でもって、テスト環境を作って、現在調査を行っています。

お礼日時:2003/11/06 12:57

2ms周期のイベントをなにで発生させているかわからないので、


まったくはずしている気もしますが。
標準コントロールのタイマー(Timer)あたりでのイベントだと、
2msは無理なはずです。

別の方法で2msが可能だったとしても、OSそのものが
リアルタイムを保証していないので、OSや他の処理の都合で
イベント取得が遅れる場合も十分にあるかとおもいます。
    • good
    • 0
この回答へのお礼

説明が足りず、すいません。
2ms周期でA/Dから割り込みが発生するとお考え下さい。

お礼日時:2003/11/05 09:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!