タグ付けされた質問 「timer」

タイマーは、ユーザーが構成した定期的な間隔でユーザー定義のアクションをトリガーする機能を持つコンポーネントです。

4
QueryPerformanceCounterの使用方法
私は最近、Timerクラスのミリ秒からマイクロ秒に変更する必要があると判断し、いくつかの調査の結果、QueryPerformanceCounterがおそらく最も安全であると判断しました。(Boost::PosixWin32 APIでは機能しない可能性があるという警告が表示されて、少し遅れました)。しかし、私はそれを実装する方法が本当にわかりません。 私がやっているGetTicks()ことは、使用しているesque関数を呼び出して、それをTimerのstartingTicks変数に代入することです。次に、経過時間を見つけるために、関数の戻り値をから減算しstartingTicks、タイマーをリセットしたら、関数をもう一度呼び出して、startingTicksをそれに割り当てます。残念ながら、私が見たコードではQueryPerformanceCounter()、を呼び出すだけの単純なものではなく、引数として何を渡すべきかわかりません。
97 c++  windows  timer 

10
gettimeofday()はマイクロ秒の精度であることが保証されていますか?
私はもともとWin32 API用に作成されたゲームをLinuxに移植しています(Win32ポートのOS XポートをLinuxに移植しています)。 QueryPerformanceCounterプロセスの起動後、uSeconds を指定して実装しました。 BOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount) { gettimeofday(&currentTimeVal, NULL); performanceCount->QuadPart = (currentTimeVal.tv_sec - startTimeVal.tv_sec); performanceCount->QuadPart *= (1000 * 1000); performanceCount->QuadPart += (currentTimeVal.tv_usec - startTimeVal.tv_usec); return true; } これはQueryPerformanceFrequency()、周波数として定数1000000 を与えることと相まって、私のマシンでうまく機能しuSeconds、プログラムの起動以降に含まれる64ビット変数を与えます。 これはポータブルですか?カーネルが特定の方法でコンパイルされた場合など、カーネルの動作が異なることを発見したくありません。ただし、Linux以外には移植できなくても問題ありません。

4
std :: system_clockとstd :: steady_clockの違いは?
違いは何であるstd::system_clockとはstd::steady_clock?(異なる結果/動作を示す例のケースは素晴らしいでしょう)。 私の目標が関数の実行時間を正確に測定することである場合(ベンチマークなど)std::system_clock、std::steady_clockとの間の最良の選択はstd::high_resolution_clock何ですか?
97 c++  c++11  timer  chrono 

5
C#タイマーは別のスレッドで経過しますか?
System.Timers.Timerは、それを作成したスレッドとは別のスレッドで経過しますか? 5秒ごとに起動するタイマーを備えたクラスがあるとします。タイマーが作動すると、elapsedメソッドで、一部のオブジェクトが変更されます。このオブジェクトを変更するのに10秒のように長い時間がかかるとしましょう。このシナリオでスレッドの衝突が発生する可能性はありますか?

4
<chrono>から整数ミリ秒と浮動小数点秒として期間を取得する方法は?
タイマーと期間のクロノライブラリを使用しようとしています。 Duration frameStart;(アプリの開始から)とDuration frameDelta;(フレーム間の時間)を使用できるようにしたい frameDelta持続時間をミリ秒と浮動秒として取得できるようにする必要があります。 新しいc ++ 11 &lt;chrono&gt;ライブラリでこれをどのように行いますか?私はそれに取り組んでおり、ググリングしています(情報はまばらです)。コードはテンプレート化されており、特別なキャストなどが必要です。このライブラリを正しく使用する方法がわかりません。
93 c++  c++11  timer  chrono 

3
終わりのないタスクを実装するための適切な方法。(タイマーvsタスク)
そのため、私のアプリは、アプリが実行されているか、キャンセルが要求されている限り、ほぼ連続的に(実行ごとに10秒程度の休止を置いて)アクションを実行する必要があります。必要な作業には、最大30秒かかる可能性があります。 System.Timers.Timerを使用し、AutoResetを使用して、前の「ティック」が完了する前にアクションが実行されないようにすることをお勧めします。 または、キャンセルトークンを使用してLongRunningモードで一般的なタスクを使用し、呼び出しの間に10秒間のThread.Sleepを使用してアクションを実行するアクションを呼び出す通常の無限whileループを含める必要がありますか?非同期/待機モデルについては、作業からの戻り値がないため、ここが適切かどうかはわかりません。 CancellationTokenSource wtoken; Task task; void StopWork() { wtoken.Cancel(); try { task.Wait(); } catch(AggregateException) { } } void StartWork() { wtoken = new CancellationTokenSource(); task = Task.Factory.StartNew(() =&gt; { while (true) { wtoken.Token.ThrowIfCancellationRequested(); DoWork(); Thread.Sleep(10000); } }, wtoken, TaskCreationOptions.LongRunning); } void DoWork() { // Some work that takes …

6
スレッドまたはタイマーでHttpServerUtility.MapPathメソッドにアクセスする方法
私System.Timers.TimerはAsp.Netアプリケーションでを使用しており、HttpServerUtility.MapPath経由でのみ利用できるように見えるメソッドを使用する必要がありますHttpContext.Current.Server.MapPath。問題はそれでHttpContext.Currentあるnull時にTimer.Elapsedイベントが発生します。 HttpServerUtilityオブジェクトへの参照を取得する別の方法はありますか?クラスのコンストラクターに挿入できます。安全ですか?現在のリクエストの最後にガベージコレクションされないようにするにはどうすればよいですか? ありがとう!

7
System.Threading.Timerのタスクベースの置き換えはありますか?
.Net 4.0のタスクは初めてですが、定期的なタスクなど、タスクベースのタイマーの交換またはタイマーの実装だと思っていたものを見つけることができませんでした。そんなことありますか? 更新 私は自分のニーズに対するソリューションであると考えるものを思い付きました。それは、すべてのCancellationTokenを利用して子タスクで「タイマー」機能をタスク内にラップし、タスクを返して次のタスクステップに参加できるようにすることです。 public static Task StartPeriodicTask(Action action, int intervalInMilliseconds, int delayInMilliseconds, CancellationToken cancelToken) { Action wrapperAction = () =&gt; { if (cancelToken.IsCancellationRequested) { return; } action(); }; Action mainAction = () =&gt; { TaskCreationOptions attachedToParent = TaskCreationOptions.AttachedToParent; if (cancelToken.IsCancellationRequested) { return; } if (delayInMilliseconds &gt; 0) Thread.Sleep(delayInMilliseconds); while …

6
Cでの最良のタイミング方法は?
高解像度と移植性を備えたコードセクションの時間を計る最良の方法は何ですか? /* Time from here */ ProcessIntenseFunction(); /* to here. */ printf("Time taken %d seconds %d milliseconds", sec, msec); クロスプラットフォームソリューションを持つ標準ライブラリはありますか?
80 c  performance  timer  timing 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.