Поделиться через


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.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Свойства

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)
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, Int64, TimeUnit)

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

GetAsync(IFuture)

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

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