言語

IFuture インターフェイス

定義

Futureは、非同期計算の結果を表します。

[Android.Runtime.Register("java/util/concurrent/Future", "", "Java.Util.Concurrent.IFutureInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public interface IFuture : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/Future", "", "Java.Util.Concurrent.IFutureInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type IFuture = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
実装

注釈

Futureは、非同期計算の結果を表します。 計算が完了したかどうかを確認し、その完了を待機し、計算の結果を取得するメソッドが用意されています。 結果は、計算が完了したときに get メソッドを使用してのみ取得でき、準備ができるまで必要に応じてブロックされます。 取り消しは、 cancel メソッドによって実行されます。 タスクが正常に完了したか、取り消されたかを判断するための追加のメソッドが用意されています。 計算が完了すると、計算を取り消すことはできません。 キャンセル可能性のために Future を使用するが、使用可能な結果を提供しない場合は、フォーム Future<?> の型を宣言し、基になるタスクの結果として null を返すことができます。

<b>Sample Usage</b> (次のクラスはすべて構成されていることに注意してください)。

{@code
            interface ArchiveSearcher { String search(String target); }
            class App {
              ExecutorService executor = ...;
              ArchiveSearcher searcher = ...;
              void showSearch(String target) throws InterruptedException {
                Callable<String> task = () -> searcher.search(target);
                Future<String> future = executor.submit(task);
                displayOtherThings(); // do other things while searching
                try {
                  displayText(future.get()); // use future
                } catch (ExecutionException ex) { cleanup(); return; }
              }
            }}

FutureTask クラスは、Runnableを実装するFutureの実装であり、Executorによって実行される可能性があります。 たとえば、上記の submit を使用した構築は、次のように置き換えることができます。

{@code
            FutureTask<String> future = new FutureTask<>(task);
            executor.execute(future);}

メモリ整合性の影響: 非同期計算によって実行されるアクション <i>happen-before</i> 別のスレッドの対応する Future.get() に続くアクション。

1\.5 で追加されました。

Javaドキュメント。

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

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
IsCancelled

このタスクが正常に完了する前に取り消された場合は、 true を返します。

IsDone

このタスクが完了した場合 true を返します。

JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

Futureは、非同期計算の結果を表します。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Cancel(Boolean)

このタスクの実行を取り消そうとします。

Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
ExceptionNow()

待機せずに、タスクによってスローされた例外を返します。

Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
Get()

計算が完了するまで必要に応じて待機し、その結果を取得します。

Get(Int64, TimeUnit)

必要に応じて、計算が完了するまで最大で指定された時間待機し、その結果 (使用可能な場合) を取得します。

InvokeState()

Futureは、非同期計算の結果を表します。

ResultNow()

待機せずに計算結果を返します。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Futureは、非同期計算の結果を表します。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetAsync(IFuture, Int64, TimeUnit)

Futureは、非同期計算の結果を表します。

GetAsync(IFuture)

Futureは、非同期計算の結果を表します。

GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

Futureは、非同期計算の結果を表します。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象