次の方法で共有


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 インスタンス。

例外

callbacknull です。

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

注釈

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

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

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

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

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

適用対象