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