共用方式為


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>範例使用方式</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是 實作 RunnableFuture 實作,因此可由 執行Executor。 例如,上述建構 submit 可以取代為:

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

記憶體一致性效果:異步計算 <i>在另一個線程中對應的Future.get()動作<之前/i> 動作所採取的動作。

已在1.5中新增。

java.util.concurrent.FutureJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

屬性

Handle

取得基礎 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsCancelled

如果此工作在正常完成之前取消,則傳 true 回 。

IsDone

如果這項工作已完成,則傳 true 回 。

JniIdentityHashCode

傳回包裝實例的 值 java.lang.System.identityHashCode()

(繼承來源 IJavaPeerable)
JniManagedPeerState

受控對等的狀態。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取和調用支援。

(繼承來源 IJavaPeerable)
PeerReference

JniObjectReference 回已包裝 Java 物件實例的 。

(繼承來源 IJavaPeerable)

方法

Cancel(Boolean)

嘗試取消此工作的執行。

Disposed()

處置實例時呼叫。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果這個實例沒有未完成的參考,則呼叫 Dispose(),否則不會執行任何動作。

(繼承來源 IJavaPeerable)
Finalized()

實例完成時呼叫。

(繼承來源 IJavaPeerable)
Get()

視需要等候計算完成,然後擷取其結果。

Get(Int64, TimeUnit)

視需要等候最多指定的時間讓計算完成,然後在可用時擷取其結果。

SetJniIdentityHashCode(Int32)

設定所 JniIdentityHashCode傳回的值。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Future表示異步計算的結果。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

設定所 PeerReference傳回的值。

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊此實例,讓運行時間不會從未來的 Java.Interop.JniRuntime+JniValueManager.PeekValue 調用傳回它。

(繼承來源 IJavaPeerable)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

Future表示異步計算的結果。

GetJniTypeName(IJavaPeerable)

Future表示異步計算的結果。

GetAsync(IFuture)

Future表示異步計算的結果。

GetAsync(IFuture, Int64, TimeUnit)

Future表示異步計算的結果。

適用於