ACTのプラグインを作成していきます。 C#が理解できている方が前提です。 ACTの使い方などの説明ページではありません。

WINDOWSで使えるタイマーをまとめてみた


単位
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)
    {
    }
}

コメントをかく


画像に記載されている文字を下のフォームに入力してください。

「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人のみ編集できます