IFuture Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 la memoria: las acciones realizadas por el cálculo <asincrónico i suceden>antes</i> después de las acciones correspondientes Future.get() en otro subproceso.
Agregado en 1.5.
Java documentación para java.util.concurrent.Future.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Propiedades
| Nombre | Description |
|---|---|
| Handle |
Obtiene el valor JNI del objeto Android subyacente. (Heredado de IJavaObject) |
| IsCancelled |
Devuelve |
| IsDone |
Devuelve |
| JniIdentityHashCode |
Devuelve el valor de |
| 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 un JniObjectReference de la instancia de objeto Java ajustada. (Heredado de IJavaPeerable) |
Métodos
| Nombre | Description |
|---|---|
| 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 |
| ExceptionNow() |
Devuelve la excepción producida por la tarea, sin esperar. |
| 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. |
| InvokeState() |
|
| ResultNow() |
Devuelve el resultado calculado, sin esperar. |
| SetJniIdentityHashCode(Int32) |
Establezca el valor devuelto por |
| SetJniManagedPeerState(JniManagedPeerStates) |
|
| SetPeerReference(JniObjectReference) |
Establezca el valor devuelto por |
| 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
| Nombre | Description |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
|
| GetAsync(IFuture) |
|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |