Exchanger.Exchange メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| Exchange(Object) |
別のスレッドがこの交換ポイントに到達するまで待機します (現在のスレッドが Thread#interrupt が中断されている場合を除く)。その後、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。 |
| Exchange(Object, Int64, TimeUnit) |
別のスレッドがこの交換ポイントに到達するまで待機し (現在のスレッドが Thread#interrupt interrupted または指定された待機時間が経過した場合を除く)、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。 |
Exchange(Object)
別のスレッドがこの交換ポイントに到達するまで待機します (現在のスレッドが Thread#interrupt が中断されている場合を除く)。その後、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。
[Android.Runtime.Register("exchange", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_Handler")]
public virtual Java.Lang.Object? Exchange(Java.Lang.Object? x);
[<Android.Runtime.Register("exchange", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_Handler")>]
abstract member Exchange : Java.Lang.Object -> Java.Lang.Object
override this.Exchange : Java.Lang.Object -> Java.Lang.Object
パラメーター
- x
- Object
交換するオブジェクト
返品
他のスレッドによって提供されるオブジェクト
- 属性
注釈
別のスレッドがこの交換ポイントに到達するまで待機します (現在のスレッドが Thread#interrupt が中断されている場合を除く)。その後、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。
別のスレッドが既に交換ポイントで待機している場合は、スレッドのスケジュール設定のために再開され、現在のスレッドによって渡されたオブジェクトを受け取ります。 現在のスレッドはすぐに戻り、その他のスレッドによって交換に渡されたオブジェクトを受け取ります。
他のスレッドがまだ交換を待機していない場合、現在のスレッドはスレッドスケジューリングのために無効になり、 <ul><li>他のスレッドが交換に入るまで休止状態になります。または <li>他のスレッドスレッド#割り込みによって現在のスレッドが割り込まれます。 </ul>
現在のスレッド<ul><li>がこのメソッドへの入力時に割り込まれた状態に設定されている場合、または<li>is Thread#interruptが交換を待っている間に中断された場合、</ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
Exchange(Object, Int64, TimeUnit)
別のスレッドがこの交換ポイントに到達するまで待機し (現在のスレッドが Thread#interrupt interrupted または指定された待機時間が経過した場合を除く)、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。
[Android.Runtime.Register("exchange", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual Java.Lang.Object? Exchange(Java.Lang.Object? x, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("exchange", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member Exchange : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit -> Java.Lang.Object
override this.Exchange : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit -> Java.Lang.Object
パラメーター
- x
- Object
交換するオブジェクト
- timeout
- Int64
待機する最大時間
- unit
- TimeUnit
timeout引数の時間単位
返品
他のスレッドによって提供されるオブジェクト
- 属性
注釈
別のスレッドがこの交換ポイントに到達するまで待機し (現在のスレッドが Thread#interrupt interrupted または指定された待機時間が経過した場合を除く)、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。
別のスレッドが既に交換ポイントで待機している場合は、スレッドのスケジュール設定のために再開され、現在のスレッドによって渡されたオブジェクトを受け取ります。 現在のスレッドはすぐに戻り、その他のスレッドによって交換に渡されたオブジェクトを受け取ります。
他のスレッドがまだ交換で待機していない場合、現在のスレッドはスレッド スケジューリングのために無効になり、 <ul><li>他のスレッドが交換に入るまで休止状態になります。または <li>他のスレッド#割り込みによって現在のスレッドが中断されるか、 <li>指定された待機時間が経過します。 </ul>
現在のスレッド<ul><li>がこのメソッドへの入力時に割り込まれた状態に設定されている場合、または<li>is Thread#interruptが交換を待っている間に中断された場合、</ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。
指定した待機時間が経過すると、 TimeoutException がスローされます。 時間が 0 以下の場合、メソッドはまったく待機しません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。