タイトル : Re: timeSetEventでタイマー処理 投稿日 : 2017/06/01(Thu) 19:26 投稿者 : YuO
> 既存のtimerは分解能も精度も悪いので、timeSetEventで書いてみました。 > 1〜50mSecで時間を計測してみた結果は以下のようになりました。 > 立ち上がり時がうまくいっていません。(実際は25mSec程度で使うので、実用上はオケ) > 改善する方法はありますか? バグ落ちしそうなところはありませんか? > ちなみにWin7/VB2013です、VB歴ほぼなし。 timeSetEventで呼ばれるコールバック関数ですが, https://msdn.microsoft.com/en-us/library/dd757634(v=vs.85).aspx から直接リンクは張られていないものの, https://msdn.microsoft.com/en-us/library/dd757632(v=vs.85).aspx を見ればわかるとおり,TimerProcというプレースホルダがあります。 そして,その関数のリファレンス https://msdn.microsoft.com/en-us/library/dd757631(v=vs.85).aspx には, ・PostMessage ・timeGetSystemTime ・timeGetTime ・timeSetEvent ・timeKillEvent ・midiOutShortMsg ・midiOutLongMsg ・OutputDebugString 以外のシステム定義関数 (つまりはAPI) を呼び出すな,と書いてあります。 Interop部分で.NET Frameworkが上記以外のAPIを呼び出す可能性がある以上, 根本的にtimeSetEventを.NET Frameworkで使うのは危険だと思います。 |