ICondition.Await 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
| 속성 | Description |
|---|---|
| Await() |
현재 스레드가 신호를 보내거나 Thread#인터럽트 중단될 때까지 대기합니다. |
| Await(Int64, TimeUnit) |
현재 스레드가 신호를 보내거나 중단되거나 지정된 대기 시간이 경과할 때까지 대기합니다. |
Await()
현재 스레드가 신호를 보내거나 Thread#인터럽트 중단될 때까지 대기합니다.
[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#인터럽트 중단될 때까지 대기합니다.
이와 Condition 관련된 잠금은 원자적으로 해제되고 현재 스레드는 스레드 예약을 위해 비활성화되고 네 가지 중 하나</em>이 발생할 때까지 <>휴면 상태가 됩니다. <ul><li>일부 다른 스레드는 이에 #signal 대한 메서드를 호출 Condition 하고 현재 스레드는 각성할 스레드로 선택됩니다. 또는 <li>다른 스레드는 이에 #signalAll대한 메서드를 호출합니다Condition<>.다른 스레드 스레드#인터럽트는 현재 스레드를 중단하며 스레드 일시 중단이 지원됩니다. 또는 <li>A "<em>가짜 절전 모드 해제</em>" 발생 합니다.
</ul>
모든 경우에 이 메서드가 현재 스레드를 반환하기 전에 이 조건과 연결된 잠금을 다시 획득해야 합니다. 스레드가 반환될 때 이 잠금을 <>유지하는 것이 보장됩니다<>.
현재 스레드: ul<li가 이 메서드에 대한 항목에서 중단된 상태를 설정했거나><, 대기 중 스레드#인터럽트 중단이 지원되고 / >ul이 지원되면 /ul<> 이 throw되고 현재 스레드의 중단 상태가 지워집니다.<>InterruptedException 첫 번째 경우 잠금이 해제되기 전에 중단 테스트가 발생하는지 여부는 지정되지 않습니다.
<b>구현 고려 사항</b>
현재 스레드는 이 메서드가 호출될 때 이와 Condition 연결된 잠금을 보유하는 것으로 간주됩니다. 이 경우인지 여부와 그렇지 않은 경우 응답 방법을 결정하는 것은 구현에 달려 있습니다. 일반적으로 예외가 throw되고(예: IllegalMonitorStateException) 구현에서 해당 사실을 문서화해야 합니다.
구현은 신호에 대한 응답으로 일반 메서드 반환보다 인터럽트 응답에 우선할 수 있습니다. 이 경우 구현은 신호가 있는 경우 다른 대기 스레드로 리디렉션되도록 해야 합니다.
에 대한 java.util.concurrent.locks.Condition.await()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.util.concurrent.locks.Condition.await(long, java.util.concurrent.TimeUnit)Java 설명서
이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.