ホームページ > バックエンド開発 > C++ > C# で 1 ミリ秒の精度の高解像度タイマーを作成するにはどうすればよいですか?

C# で 1 ミリ秒の精度の高解像度タイマーを作成するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-17 10:57:13
オリジナル
833 人が閲覧しました

How Can I Create a High-Resolution Timer in C# with 1ms Accuracy?

C# の高解像度タイマー

System.Timer クラスは、有効期限が切れたときにイベントを発生させる、C# で一般的に使用されるタイマーです。ただし、高解像度のタイミングでは不十分です。この記事では、1 ミリ秒間隔でイベントを起動する高解像度タイマーを作成するためのソリューションについて説明します。

NET Framework の制限

.NET Framework では、ビルドされた高解像度タイマーのサポート。ただし、Windows のマルチメディア タイマー API は、高解像度タイマー イベントのメカニズムを提供します。

マルチメディア タイマー

マルチメディア タイマー API は、次の方法で構成できるタイマーを提供します。最大 1 ミリ秒の分解能。次のコードはその使用法を示しています:

class MultimediaTimer : IDisposable
{
    // ...

    public int Interval
    {
        get { return interval; }
        set
        {
            // ...
        }
    }

    public int Resolution
    {
        get { return resolution; }
        set
        {
            // ...
        }
    }

    public void Start()
    {
        // ...
    }

    public void Stop()
    {
        // ...
    }

    public event EventHandler Elapsed;
}
ログイン後にコピー

コード例

マルチメディア タイマーを利用する完全な例を次に示します:

class Program
{
    public static void Main(string[] args)
    {
        TestThreadingTimer();
        TestMultimediaTimer();
    }

    private static void TestMultimediaTimer()
    {
        Stopwatch s = new Stopwatch();
        using (var timer = new MultimediaTimer() { Interval = 1 })
        {
            timer.Elapsed += (o, e) => Console.WriteLine(s.ElapsedMilliseconds);
            s.Start();
            timer.Start();
            Console.ReadKey();
            timer.Stop();
        }
    }

    // ...
}
ログイン後にコピー

注: マルチメディア タイマー API はシステムのパフォーマンスに影響を与える可能性があるため、使用することが重要ですそれは賢明に。また、システムのパフォーマンスが変動し、タイマーの信頼性が変動する可能性があることも考慮する価値があります。

以上がC# で 1 ミリ秒の精度の高解像度タイマーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート