質問者
タイマー関連の質問です。

質問
-
timeBeginPeriodと言う関数が、c++にはあり、それで、マシンのタイマの精度をコントロール出来るみたいです。
これと同じ関数はc#には無いのでしょうか?
自分が見た限りではどうやら無いみたいなのです。
現状では、タイマの精度が最低10ミリセカンドしかなく、一フレーム16.666、、、ミリ秒になるゲームのフレーム管理をするには、精度が荒過ぎます。
自分としては1ミリセカンド単位のタイマーがやはり、欲しいところです。
mdxでも3dのmdxならば、内部で自動的にtimeBeginPeriodを呼んでタイマー精度を勝手に高めてくれるらしいのですが2dのmdxでは、こう言う機能はどうやら無いようです。
これは、諦めるしかないのでしょうか?それとも、dllインポートとか言う荒業で、c++を使ってc++の関数を使用するとか言う方法しかないのでしょうか?
自分のマシンには現状c#しかないので、やはり、諦めるしかないのでしょうか?
詳しい方いらしましたらお教え下さい。
すべての返信
-
件名と質問内容が違うくなりますので新たにスレッドを作成されたほうが良いと思いますよ。
ブル さんからの引用 DllImportと、P/invokeは同じものなのでしょうか?それとも全く違うものなのでしょうか? 自分の開発環境のヘルプを幾ら検索しても良く解りません。
こちらは参照されましたでしょうか。
簡単に説明すると
P/Invoke は、アンマネージ DLL の関数を呼び出し仕組みのこと
DllImportAttribute は アンマネージ DLL の関数のを探すための情報を提供すること
用は P/Invoke するために、DllImportAttribute を使用して呼び出す関数の情報を取得しているということですね。
私も詳しく仕組みを理解していませんが、だいたいこんな感じだと思います。