Timer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。
[Android.Runtime.Register("java/util/Timer", DoNotGenerateAcw=true)]
public class Timer : Java.Lang.Object
[<Android.Runtime.Register("java/util/Timer", DoNotGenerateAcw=true)>]
type Timer = class
inherit Object
- 継承
- 属性
注釈
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 タスクは、1 回限り実行するか、定期的に繰り返し実行するようにスケジュールできます。
各 Timer オブジェクトに対応するのは、タイマーのすべてのタスクを順番に実行するために使用される 1 つのバックグラウンド スレッドです。 タイマー タスクはすぐに完了します。 タイマー タスクの完了に過剰な時間がかかる場合は、タイマーのタスク実行スレッドが "ホグ" されます。 これにより、後続のタスクの実行を遅らせることができます。これにより、問題のあるタスクが最終的に完了したときに、"一束" して迅速に連続して実行される可能性があります。
Timer オブジェクトへの最後のライブ参照が終了し、未処理のすべてのタスクの実行が完了すると、タイマーのタスク実行スレッドは正常に終了します (ガベージ コレクションの対象になります)。 ただし、これが発生するまでに任意に長い時間がかかる場合があります。 既定では、タスク実行スレッドは デーモン スレッドとして実行されないため、アプリケーションが終了しないようにすることができます。 呼び出し元がタイマーのタスク実行スレッドを迅速に終了する場合、呼び出し元はタイマーの cancel メソッドを呼び出す必要があります。
タイマーのタスク実行スレッドが予期せず終了した場合 (たとえば、stop メソッドが呼び出されたため)、タイマーでタスクをスケジュールしようとすると、タイマーのIllegalStateException メソッドが呼び出されたかのように、cancelが発生します。
このクラスはスレッド セーフです。複数のスレッドで、外部同期を必要とせずに 1 つの Timer オブジェクトを共有できます。
このクラスはリアルタイムの保証 を提供しません 。 Object.wait(long) メソッドを使用してタスクをスケジュールします。
Java 5.0 では、java.util.concurrent パッケージが導入され、その中のコンカレンシー ユーティリティの 1 つが、特定のレートまたは遅延でタスクを繰り返し実行するためのスレッド プールであるjava.util.concurrent.ScheduledThreadPoolExecutor ScheduledThreadPoolExecutorです。 これは、複数のサービス スレッドを許可し、さまざまな時間単位を受け入れ、Timerのサブクラス化を必要としないため、実質的に/TimerTaskTimerTaskの組み合わせのより汎用性の高い置換です (Runnableを実装するだけです)。 1 つのスレッドで ScheduledThreadPoolExecutor を構成すると、 Timerと同等になります。
実装上の注意: このクラスは、多数の同時にスケジュールされたタスクにスケーリングされます (数千ものタスクに問題はありません)。 内部的には、バイナリ ヒープを使用してタスク キューを表します。そのため、タスクをスケジュールするためのコストは O (ログ n) です。n は同時にスケジュールされたタスクの数です。
実装に関する注意: すべてのコンストラクターがタイマー スレッドを開始します。
1.3 で追加されました。
このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。
コンストラクター
| 名前 | 説明 |
|---|---|
| Timer() |
新しいタイマーを作成します。 |
| Timer(Boolean) |
関連付けられたスレッドをデーモンとして実行する Thread#setDaemon に指定できる新しいタイマーを作成します。 |
| Timer(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
| Timer(String, Boolean) |
関連付けられたスレッドに指定された名前を持ち、デーモンとして実行される Thread#setDaemon に指定できる新しいタイマーを作成します。 |
| Timer(String) |
関連付けられたスレッドに指定した名前を持つ新しいタイマーを作成します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| JniPeerMembers |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Cancel() |
このタイマーを終了し、現在スケジュールされているタスクをすべて破棄します。 |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| Equals(Object) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
古い.
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| Purge() |
このタイマーのタスク キューから、取り消されたすべてのタスクを削除します。 |
| Schedule(TimerTask, Date, Int64) |
指定した時刻から、指定したタスクの繰り返し の固定遅延実行をスケジュールします。 |
| Schedule(TimerTask, Date) |
指定した時刻に、指定したタスクの実行をスケジュールします。 |
| Schedule(TimerTask, Int64, Int64) |
指定したタスクを、指定した遅延後に開始する、繰り返し の固定遅延実行のスケジュールを設定します。 |
| Schedule(TimerTask, Int64) |
指定した遅延後に、指定したタスクの実行をスケジュールします。 |
| ScheduleAtFixedRate(TimerTask, Date, Int64) |
指定した時間に開始して、指定したタスクの 固定レート実行を繰り返し実行するスケジュールを設定します。 |
| ScheduleAtFixedRate(TimerTask, Int64, Int64) |
指定したタスクを、指定した遅延後に開始して、 固定レート実行を繰り返すスケジュールを設定します。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| IJavaPeerable.Finalized() |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 (継承元 JavaObject) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
バックグラウンド スレッドで将来実行するためにタスクをスケジュールするためのスレッドの機能。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|