次の方法で共有


IFuture インターフェイス

定義

A 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
派生
属性
実装

注釈

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

<b>サンプル使用法</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実装する実装FutureRunnableであるためExecutor、. たとえば、上記の構造を submit 次のように置き換えることができます。

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

メモリ整合性の影響: 非同期計算<によって実行されたアクションは>、別のスレッドで対応するFuture.get()アクションの後に発生します<>。

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

の Java ドキュメントjava.util.concurrent.Future

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

プロパティ

Handle

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

(継承元 IJavaObject)
IsCancelled

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

IsDone

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

JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
PeerReference

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

(継承元 IJavaPeerable)

メソッド

Cancel(Boolean)

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

Disposed()

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

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

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

(継承元 IJavaPeerable)
Finalized()

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

(継承元 IJavaPeerable)
Get()

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

Get(Int64, TimeUnit)

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

SetJniIdentityHashCode(Int32)

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

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

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

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

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

(継承元 IJavaPeerable)
UnregisterFromRuntime()

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

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

GetAsync(IFuture, Int64, TimeUnit)

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

GetAsync(IFuture)

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

適用対象