- - PR -
スレッドタイマにて一定間隔で呼び出すメソッド内のDLL関数が実行されない
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-06-04 17:58
MSDN ライブラリは読みました?UI スレッドではコールバック関数が呼び出されないので、System.Windows.Forms.Timer か、System.Timer.Timer を使うように、と書いてあると思うのです。
|
|
投稿日時: 2008-06-04 19:26
unibonさん、Jittaさん、ご回答いただきありがとうございます。
Jittaさんの仰るとおりでした。 http://msdn.microsoft.com/ja-jp/library/system.threading.timer.aspx 上記ページの上から4つ目のメモ欄に密かに書かれてますね。 「推奨」というのが曲者ですが。 Forms.Timerを使うとあっさり動いてしまいました。 ただ、Forms.Timerですと精度の上限が55msのようですので、 System.Timersを使うことにしようと思います。 ※ちなみにですが、スレッドタイマで実行する関数を、DLL関数から 別途用意した関数(単純なビット演算など)と置き換えて 実行させると、問題なく動いたりします。このダミーを.NET関数と しても同様に問題なく動作します。この辺に「推奨」とされている 曖昧さが表れていそうです。 前述のリンクだけを参照したのがまずかったですね。 やはりトラぶったときはしっかりMSDNに目を通すべき、と 痛感しました。猛省です。 ご指摘、ご回答いただきました皆様、ありがとうございました。 |