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);}

内存一致性效果:异步计算<在>另一个线程中的相应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 表示异步计算的结果。

适用于