Language

ICondition.Await メソッド

定義

オーバーロード

名前 説明
Await()

現在のスレッドが通知されるか、Thread#interrupt が中断されるまで待機します。

Await(Int64, TimeUnit)

現在のスレッドが通知または中断されるまで、または指定された待機時間が経過するまで待機します。

Await()

現在のスレッドが通知されるか、Thread#interrupt が中断されるまで待機します。

[Android.Runtime.Register("await", "()V", "GetAwaitHandler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void Await();
[<Android.Runtime.Register("await", "()V", "GetAwaitHandler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Await : unit -> unit
属性

例外

現在のスレッドが中断された場合 (およびスレッド中断の中断がサポートされている場合)

注釈

現在のスレッドが通知されるか、Thread#interrupt が中断されるまで待機します。

このConditionに関連付けられているロックはアトミックに解放され、現在のスレッドはスレッド スケジューリングのために無効になり、<em>one</em> 4 つのことが起こるまで休止状態になります:<ul><li>他のスレッドはこの#signalのConditionメソッドを呼び出し、現在のスレッドは、起動するスレッドとして選択されます。 または <li>他のスレッドがこの#signalAllに対してCondition メソッドを呼び出すか、<li を呼び出します>他のスレッドスレッド#割り込みによって現在のスレッドが中断され、スレッド中断の中断がサポートされています。または <li>A ><em>spurious wakeup</em>> が発生します。 </ul>

いずれの場合も、このメソッドが返される前に、現在のスレッドがこの条件に関連付けられているロックを再取得する必要があります。 スレッドが返されるときに、このロックを保持 <em>guaranteed</em> 。

現在のスレッド<ul><li>このメソッドへのエントリ時に割り込まれた状態が設定されている場合、または<>スレッドの中断の待機中に中断されたスレッド#割り込みがサポートされている場合、</ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。 最初のケースでは、ロックが解除される前に中断のテストが行われるかどうかを指定しません。

<b>実装に関する考慮事項</b>

現在のスレッドは、このメソッドが呼び出されたときに、この Condition に関連付けられているロックを保持するものと見なされます。 これが当てはまるかどうか、そうでない場合の応答方法を判断するのは実装次第です。 通常、例外 ( IllegalMonitorStateException など) がスローされ、実装はその事実を文書化する必要があります。

実装では、シグナルに応答して通常のメソッドの戻り値に対する割り込みに応答することを優先できます。 その場合、実装では、シグナルが別の待機スレッド (ある場合) にリダイレクトされるようにする必要があります。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

Await(Int64, TimeUnit)

現在のスレッドが通知または中断されるまで、または指定された待機時間が経過するまで待機します。

[Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)Z", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public bool Await(long time, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)Z", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Await : int64 * Java.Util.Concurrent.TimeUnit -> bool

パラメーター

time
Int64

待機する最大時間

unit
TimeUnit

time引数の時間単位

返品

false メソッドから戻る前に待機時間が検出可能に経過した場合、それ以外の場合 true

属性

例外

現在のスレッドが中断された場合 (およびスレッド中断の中断がサポートされている場合)

注釈

現在のスレッドが通知または中断されるまで、または指定された待機時間が経過するまで待機します。 このメソッドは、動作上、次の操作に相当します。

{@code awaitNanos(unit.toNanos(time)) > 0}

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象