0

Timer クラスを使用して 1 日の特定の時間にメソッドをコールバックし、その後 24 時間ごとに呼び出すアプリを作成しました。

私はティックを使って 24 時間後のことを示します。(int) TimeSpan.FromHours(24).TotalMilliseconds これを使用して、24 時間ティックを取得します。

これは私にとってはうまくいきますが、別のコンピューターではトリガー時間がかなりずれています。

とにかくこれをデバッグするには?この問題とどのように戦う/処理する必要がありますか....

4

3 に答える 3

2

あなたにとって「道のり」はどのくらいですか?アプリを特定の時間に実行する場合は、終了後 24 時間ではなく、その特定の時間にスケジュールを設定します。時間は常に次の時間からずれるため、必然的にそのように実行すると多少のずれが発生します。 day X 秒。ここで、X は前日にプログラムが完了するまでにかかった時間です。

于 2012-06-29T18:41:35.990 に答える
0

まず、ティックは明確に定義された値であるため、「マイティック」はありません。

1つのティックは、100ナノ秒または1000万分の1秒を表します。1ミリ秒に10,000ティックがあります。

DateTimeオブジェクトには、アクセスに使用できるTicksプロパティもあります。ここに投稿した簡単なコードをいくつか書いたので、完璧な結果が得られました。

あなたの実装がそれほどドリフトする必要がある理由はわかりません。一貫して問題を引き起こすサンプルを作成するか、独自のソースの関連部分を投稿してください。

于 2012-06-29T19:40:39.330 に答える
0

デスクトップ コンピュータのクロックは、毎日 1 秒以上頻繁に変動します。通常、これらの変動を修正するために NTP サーバーを使用します。しかし、それはまさに獣の性質です。

于 2012-06-29T18:39:46.240 に答える