SubmissionPublisher.Offer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| Offer(Object, IBiPredicate) |
|
| Offer(Object, Int64, TimeUnit, IBiPredicate) |
可能であれば、指定された項目を現在の各サブスクライバーに発行します。その場合は、 |
Offer(Object, IBiPredicate)
Flow.Subscriber#onNext(Object) onNext メソッドを非同期的に呼び出すことによって、可能であれば、指定された項目を現在の各サブスクライバーに発行します。
[Android.Runtime.Register("offer", "(Ljava/lang/Object;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_Ljava_util_function_BiPredicate_Handler", ApiSince=33)]
public virtual int Offer(Java.Lang.Object? item, Java.Util.Functions.IBiPredicate? onDrop);
[<Android.Runtime.Register("offer", "(Ljava/lang/Object;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_Ljava_util_function_BiPredicate_Handler", ApiSince=33)>]
abstract member Offer : Java.Lang.Object * Java.Util.Functions.IBiPredicate -> int
override this.Offer : Java.Lang.Object * Java.Util.Functions.IBiPredicate -> int
パラメーター
- item
- Object
発行する (null 以外の) 項目
- onDrop
- IBiPredicate
null 以外の場合、サブスクライバーと項目の引数を使用してサブスクライバーへのドロップ時に呼び出されるハンドラー。true が返された場合、オファーは (1 回) 再試行されます
返品
負の場合は(負の)ドロップ数。それ以外の場合は、最大ラグの見積もり
- 属性
注釈
Flow.Subscriber#onNext(Object) onNext メソッドを非同期的に呼び出すことによって、可能であれば、指定された項目を現在の各サブスクライバーに発行します。 リソースの制限を超えた場合、アイテムは 1 つ以上のサブスクライバーによって削除される可能性があります。その場合、指定されたハンドラー (null 以外の場合) が呼び出され、true が返された場合は 1 回再試行されます。 ハンドラーの呼び出し中に、他のスレッドによるこのクラスのメソッドへの他の呼び出しがブロックされます。 復旧が保証されない限り、オプションは通常、エラーのログ記録やサブスクライバーへの Flow.Subscriber#onError(Throwable) onError シグナルの発行に限定されます。
このメソッドは、状態インジケーターを返します。負の場合は、(負の) ドロップ数 (サブスクライバーに項目を発行しようとして失敗しました) を表します。 それ以外の場合は、すべての現在のサブスクライバー間の最大ラグ (送信された項目の数がまだ消費されていない) の見積もりです。 サブスクライバーが存在する場合、この値は少なくとも 1 つ (この送信済みアイテムを占めます)、それ以外の場合は 0 です。
このパブリッシャーの Executor がサブスクライバーに非同期通知しようとしたときに RejectedExecutionException (またはその他の RuntimeException または Error) をスローした場合、またはドロップ ハンドラーがドロップされたアイテムを処理するときに例外をスローした場合、この例外は再スローされます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
Offer(Object, Int64, TimeUnit, IBiPredicate)
可能であれば、指定された項目を現在の各サブスクライバーに発行します。その場合は、 Flow.Subscriber#onNext(Object) onNext メソッドを非同期で呼び出し、指定したタイムアウトまで、または呼び出し元スレッドが中断されるまで、または指定されたハンドラー (null 以外の場合) が呼び出されるまで、サブスクリプションのリソースをブロックし、true を返す場合は 1 回再試行します。
[Android.Runtime.Register("offer", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Ljava_util_function_BiPredicate_Handler", ApiSince=33)]
public virtual int Offer(Java.Lang.Object? item, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Util.Functions.IBiPredicate? onDrop);
[<Android.Runtime.Register("offer", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/function/BiPredicate;)I", "GetOffer_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Ljava_util_function_BiPredicate_Handler", ApiSince=33)>]
abstract member Offer : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit * Java.Util.Functions.IBiPredicate -> int
override this.Offer : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit * Java.Util.Functions.IBiPredicate -> int
パラメーター
- item
- Object
発行する (null 以外の) 項目
- timeout
- Int64
任意のサブスクライバーのリソースを待機してから、次の単位で終了するまでの時間 unit
- unit
- TimeUnit
timeout パラメーターの解釈方法を決定するTimeUnit
- onDrop
- IBiPredicate
null 以外の場合、サブスクライバーと項目の引数を使用してサブスクライバーへのドロップ時に呼び出されるハンドラー。true が返された場合、オファーは (1 回) 再試行されます
返品
負の場合は(負の)ドロップ数。それ以外の場合は、最大ラグの見積もり
- 属性
注釈
可能であれば、指定された項目を現在の各サブスクライバーに発行します。その場合は、 Flow.Subscriber#onNext(Object) onNext メソッドを非同期で呼び出し、指定したタイムアウトまで、または呼び出し元スレッドが中断されるまで、または指定されたハンドラー (null 以外の場合) が呼び出されるまで、サブスクリプションのリソースをブロックし、true を返す場合は 1 回再試行します。 (ドロップ ハンドラーは、現在のスレッドが中断されているかどうかを確認することで、タイムアウトと割り込みを区別できます)。ハンドラーの呼び出し中に、他のスレッドによるこのクラスのメソッドへの他の呼び出しがブロックされます。 復旧が保証されない限り、オプションは通常、エラーのログ記録やサブスクライバーへの Flow.Subscriber#onError(Throwable) onError シグナルの発行に限定されます。
このメソッドは、状態インジケーターを返します。負の場合は、(負の) ドロップ数 (サブスクライバーに項目を発行しようとして失敗しました) を表します。 それ以外の場合は、すべての現在のサブスクライバー間の最大ラグ (送信された項目の数がまだ消費されていない) の見積もりです。 サブスクライバーが存在する場合、この値は少なくとも 1 つ (この送信済みアイテムを占めます)、それ以外の場合は 0 です。
このパブリッシャーの Executor がサブスクライバーに非同期通知しようとしたときに RejectedExecutionException (またはその他の RuntimeException または Error) をスローした場合、またはドロップ ハンドラーがドロップされたアイテムを処理するときに例外をスローした場合、この例外は再スローされます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。