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 представляет собой реализацию Future , которая реализует Runnable, и поэтому может выполняться с помощью объекта Executor. Например, приведенное выше строительство submit может быть заменено следующим образом:

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

Эффекты согласованности памяти: действия, выполняемые асинхронным вычислением <, которые выполняются>перед действиями перед< и i> , соответствующими Future.get() в другом потоке.

Добавлено в версии 1.5.

Java документации по java.util.concurrent.Future.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя Описание
Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от 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)
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)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Представляет Future результат асинхронного вычисления.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к