ICondition.AwaitUntil(Date) メソッド

定義

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

[Android.Runtime.Register("awaitUntil", "(Ljava/util/Date;)Z", "GetAwaitUntil_Ljava_util_Date_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public bool AwaitUntil (Java.Util.Date? deadline);
[<Android.Runtime.Register("awaitUntil", "(Ljava/util/Date;)Z", "GetAwaitUntil_Ljava_util_Date_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member AwaitUntil : Java.Util.Date -> bool

パラメーター

deadline
Date

まで待機する絶対時間

戻り値

false 返却時に期限が経過した場合は 、それ以外の場合は true

属性

例外

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

注釈

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

この条件に関連付けられているロックはアトミックに解放され、現在のスレッドはスレッド スケジューリングの目的で無効になり、5 つの><ことが発生するまで><休止状態になります。<ul><li>他のスレッドがこのメソッドConditionを呼び出#signalし、現在のスレッドが起動するスレッドとして選択されます。または <li>他のスレッドがこの><Conditionのメソッドを呼び出#signalAllす場合があります。他のいくつかのスレッド Thread#interrupt は現在のスレッドを中断し、スレッド中断の中断がサポートされています。または <li>指定された期限が過ぎ、または <li>A "<em>偽のウェイクアップ</em>" が発生します。 </ul>

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

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

戻り値は、期限が経過したかどうかを示します。これは次のように使用できます。

{@code
            boolean aMethod(Date deadline)
                throws InterruptedException {
              boolean stillWaiting = true;
              lock.lock();
              try {
                while (!conditionBeingWaitedFor()) {
                  if (!stillWaiting)
                    return false;
                  stillWaiting = theCondition.awaitUntil(deadline);
                }
                // ...
                return true;
              } finally {
                lock.unlock();
              }
            }}

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

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

実装では、シグナルに応答して通常のメソッドの戻り値に対する割り込みへの応答、または指定された期限の超過を示す割り込みに対する応答を優先できます。 どちらの場合も、実装では、シグナルが別の待機スレッド (存在する場合) にリダイレクトされるようにする必要があります。

の Java ドキュメント java.util.concurrent.locks.Condition.awaitUntil(java.util.Date)

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

適用対象