最終更新:
plug_in_create 2016年06月03日(金) 14:30:13履歴
単位
1s = 1000ms
Windowsのタイマー制度は16msぐらいらしい… これ以上細かい数値は設定しても意味をなさない
FPS Frames Per Second
64フレーム 15.625msに1回描画 ほぼタイマー精度と同じ速度で描画
60〜90msの処理 描画フレーム3回分の処理…これはかなり大きい処理
1)フォームタイマー
System.Windows.Forms.Timer
Windows Form 向けに最適化
精度が低い(上限 55msec。Windows メッセージループ の影響を受ける)
メイン関数と同一スレッドで動作(=シーケンシャル動作)
2)スレッドタイマー
System.Threading.Timer
Windows Form での使用は非推奨
軽量
別スレッドで動作
インスタンス生成時のみデリゲートを設定できる
実行中はどこかにインスタンス保持しておかないとガベッジ対象になる
3)タイマー
System.Timers.Timer
精度が高い
別スレッドで動作
実行中はどこかにインスタンス保持しておかないとガベッジ対象になる
3番が一番使いやすい
using System.Timers; class myTimer { static void Main(string[] args) { // タイマーの生成 var timer = new Timer(); timer.Elapsed += new ElapsedEventHandler(OnElapsed_TimersTimer); timer.Interval = 1000; timer.Start(); // タイマーを停止 timer.Stop(); } static void OnElapsed_TimersTimer(object sender, ElapsedEventArgs e) { } }
最新コメント