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 |
Возвращает, |
IsDone |
Возвращает, |
JniIdentityHashCode |
Возвращает значение |
JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
JniPeerMembers |
Поддержка доступа к членам и вызовов. (Унаследовано от IJavaPeerable) |
PeerReference |
JniObjectReference Возвращает экземпляр объекта Java в оболочке. (Унаследовано от IJavaPeerable) |
Методы
Cancel(Boolean) |
Пытается отменить выполнение этой задачи. |
Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
DisposeUnlessReferenced() |
Если нет невыполненных ссылок на этот экземпляр, то вызывается |
Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
Get() |
Ожидает завершения вычисления, а затем извлекает результат. |
Get(Int64, TimeUnit) |
Ожидает, если это необходимо, по крайней мере заданное время для завершения вычисления, а затем извлекает его результат, если он доступен. |
SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое |
SetJniManagedPeerState(JniManagedPeerStates) |
Представляет |
SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое |
UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Представляет |
GetJniTypeName(IJavaPeerable) |
Представляет |
GetAsync(IFuture, Int64, TimeUnit) |
Представляет |
GetAsync(IFuture) |
Представляет |