Compartir a través de


IFuture Interfaz

Definición

Future un objeto representa el resultado de un cálculo asincrónico.

[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
Derivado
Atributos
Implementaciones

Comentarios

Future un objeto representa el resultado de un cálculo asincrónico. Se proporcionan métodos para comprobar si se ha completado el cálculo, esperar su finalización y recuperar el resultado del cálculo. El resultado solo se puede recuperar mediante el método get cuando se ha completado el cálculo, bloqueando si es necesario hasta que esté listo. El método realiza la cancel cancelación. Se proporcionan métodos adicionales para determinar si la tarea se completó normalmente o se canceló. Una vez completado un cálculo, no se puede cancelar el cálculo. Si desea usar un Future para la cancelabilidad, pero no proporcionar un resultado utilizable, puede declarar tipos del formulario Future<?> y devolver null como resultado de la tarea subyacente.

<b>Uso de< ejemplo/b> (tenga en cuenta que todas las clases siguientes están compuestas).

{@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; }
              }
            }}

La FutureTask clase es una implementación de Future que implementa Runnabley, por tanto, una Executor. Por ejemplo, la construcción anterior con submit podría reemplazarse por:

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

Efectos de coherencia de memoria: las acciones realizadas por el cálculo <asincrónico i>se producen antes< de que/i> después de las acciones correspondientes Future.get() en otro subproceso.

Agregado en 1.5.

Documentación de Java para java.util.concurrent.Future.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Propiedades

Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
IsCancelled

Devuelve true si esta tarea se canceló antes de que se completara normalmente.

IsDone

Devuelve true si esta tarea se completó.

JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve una JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Cancel(Boolean)

Intenta cancelar la ejecución de esta tarea.

Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
Get()

Espera si es necesario para que se complete el cálculo y, a continuación, recupera su resultado.

Get(Int64, TimeUnit)

Espera si es necesario para que el cálculo se complete como máximo y, a continuación, recupera su resultado, si está disponible.

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Future un objeto representa el resultado de un cálculo asincrónico.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Future un objeto representa el resultado de un cálculo asincrónico.

GetJniTypeName(IJavaPeerable)

Future un objeto representa el resultado de un cálculo asincrónico.

GetAsync(IFuture)

Future un objeto representa el resultado de un cálculo asincrónico.

GetAsync(IFuture, Int64, TimeUnit)

Future un objeto representa el resultado de un cálculo asincrónico.

Se aplica a