次の方法で共有


TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) メソッド

定義

TimeSpan 値を使用して時間間隔を測定して、新しい ITimer インスタンスを作成します。

public:
 virtual System::Threading::ITimer ^ CreateTimer(System::Threading::TimerCallback ^ callback, System::Object ^ state, TimeSpan dueTime, TimeSpan period);
public virtual System.Threading.ITimer CreateTimer (System.Threading.TimerCallback callback, object? state, TimeSpan dueTime, TimeSpan period);
abstract member CreateTimer : System.Threading.TimerCallback * obj * TimeSpan * TimeSpan -> System.Threading.ITimer
override this.CreateTimer : System.Threading.TimerCallback * obj * TimeSpan * TimeSpan -> System.Threading.ITimer
Public Overridable Function CreateTimer (callback As TimerCallback, state As Object, dueTime As TimeSpan, period As TimeSpan) As ITimer

パラメーター

callback
TimerCallback

タイマーが起動したときに実行されるメソッドを表すデリゲート。 コールバックに指定されたメソッドは再入可能である必要があります。これは、前のコールバックがまだ処理される前または処理中にタイマーが再び起動した場合に、2 つのスレッドで同時に呼び出される可能性があるためです。

state
Object

callbackに渡されるオブジェクト。 これは null である可能性があります。

dueTime
TimeSpan

callback が呼び出されるまでの遅延時間。 タイマーが開始されないようにするには、InfiniteTimeSpan を指定します。 タイマーをすぐに開始する Zero を指定します。

period
TimeSpan

callbackの呼び出し間の時間間隔。 定期的なシグナリングを無効にする InfiniteTimeSpan を指定します。

戻り値

新しく作成された ITimer インスタンス。

例外

callback は null です。

dueTime または period の値のミリ秒数が負の値であり、Infiniteと等しくないか、MaxValueより大きい。

注釈

コールバック パラメーターで指定されたデリゲートは、dueTime が経過した後、その後、period の時間間隔が経過するたびに 1 回呼び出されます。

dueTime が 0 の場合、コールバックはすぐに呼び出されます。 dueTime が -1 ミリ秒の場合、callback は呼び出されません。タイマーは無効になっていますが、Change(TimeSpan, TimeSpan) メソッドを呼び出すことによって再度有効にすることができます。

period が 0 または -1 ミリ秒で、dueTime が正の場合、callback は 1 回呼び出されます。タイマーの定期的な動作は無効になっていますが、Change(TimeSpan, TimeSpan) メソッドを使用して再度有効にすることができます。

タイマーがまだスケジュールされている間、戻り ITimer インスタンスは暗黙的にルート化されます。

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) は、ExecutionContext をキャプチャし、呼び出されるたびに callback を呼び出すときに使用する ITimer を格納します。 そのキャプチャは、SuppressFlow()で抑制できます。

適用対象