ICompletionStage Interfaz

Definición

Una fase de un cálculo posiblemente asincrónico, que realiza una acción o calcula un valor cuando se completa otra fase de finalización.

[Android.Runtime.Register("java/util/concurrent/CompletionStage", "", "Java.Util.Concurrent.ICompletionStageInvoker", ApiSince=24)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface ICompletionStage : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/CompletionStage", "", "Java.Util.Concurrent.ICompletionStageInvoker", ApiSince=24)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type ICompletionStage = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Derivado
Atributos
Implementaciones

Comentarios

Una fase de un cálculo posiblemente asincrónico, que realiza una acción o calcula un valor cuando se completa otra fase de finalización. Una fase se completa tras la finalización de su cálculo, pero esto puede desencadenar a su vez otras fases dependientes. La funcionalidad definida en esta interfaz solo toma algunas formas básicas, que se expanden a un conjunto mayor de métodos para capturar un rango de estilos de uso:

<ul>

<li>El cálculo realizado por una fase puede expresarse como función, consumidor o runnable (mediante métodos con nombres como <em>apply</em>, <em>accept</em> o <em>run</em>, respectivamente) dependiendo de si requiere argumentos o genera resultados. Por ejemplo:

{@code
            stage.thenApply(x -> square(x))
                 .thenAccept(x -> System.out.print(x))
                 .thenRun(() -> System.out.println());}

Un formulario adicional (<em>compose</em>) permite la construcción de canalizaciones de cálculo a partir de funciones que devuelven fases de finalización.

Cualquier argumento para el cálculo de una fase es el resultado del cálculo de una fase desencadenador.

<La ejecución de una>fase se puede desencadenar mediante la finalización de una sola fase, o ambas de dos fases, o bien de dos fases. Las dependencias de una sola fase se organizan mediante métodos con prefijo <em>then</em>. Los desencadenados por la finalización de <em>ambos</em> de dos fases pueden>< combinar</em> sus resultados o efectos, utilizando métodos con nombre correspondiente. Los desencadenados por <em/<em>> de dos fases no garantizan cuáles de los resultados o efectos se usan para el cálculo de la fase dependiente.

<li>Dependencias entre fases controlan el desencadenador de cálculos, pero no garantizan ninguna ordenación concreta. Además, la ejecución de los cálculos de una nueva fase se puede organizar de tres maneras: ejecución predeterminada, ejecución asincrónica predeterminada (mediante métodos con sufijo <em async/em> que emplean la instalación de ejecución asincrónica< predeterminada de la fase) o personalizada (a través de un proporcionadoExecutor>). Las propiedades de ejecución de los modos predeterminados y asincrónicos se especifican mediante las implementaciones de CompletionStage, no esta interfaz. Los métodos con argumentos executor explícitos pueden tener propiedades de ejecución arbitrarias, y es posible que ni siquiera admitan la ejecución simultánea, pero se organizan para su procesamiento de una manera que admita la asincronía.

<li>Dos formas de método (#handle handle y #whenComplete whenComplete) admiten el cálculo incondicional si la fase de desencadenamiento se completó normal o excepcionalmente. El método #exceptionally exceptionally solo admite el cálculo cuando la fase de desencadenamiento se completa excepcionalmente, calculando un resultado de reemplazo, de forma similar a la palabra clave java catch . En todos los demás casos, si el cálculo de una fase finaliza abruptamente con una excepción o error (sin marcar), todas las fases dependientes que requieren su finalización también se completan excepcionalmente, con una CompletionException excepción que mantiene la excepción como su causa. Si una fase depende <de em/<em>> de dos fases, y ambas se completan de forma excepcional, la propiedad CompletionException puede corresponder a cualquiera de estas excepciones. Si una fase depende de <em o< em>> de dos otros, y solo una de ellas se completa excepcionalmente, no se garantiza si la fase dependiente se completa normalmente o excepcionalmente. En el caso del método whenComplete, cuando la propia acción proporcionada encuentra una excepción, la fase se completa excepcionalmente con esta excepción, a menos que la fase de origen también se complete excepcionalmente, en cuyo caso la finalización excepcional de la fase de origen se da preferencia y se propaga a la fase dependiente.

</ul>

Todos los métodos cumplen las especificaciones de desencadenamiento, ejecución y finalización excepcionales anteriores (que no se repiten en especificaciones de método individuales). Además, mientras que los argumentos usados para pasar un resultado de finalización (es decir, para los parámetros de tipo T) para los métodos que los aceptan pueden ser NULL, pasar un valor NULL para cualquier otro parámetro dará como resultado que se produzca una NullPointerException excepción .

El formato #handle handle de método es la forma más general de crear una fase de continuación, realizar incondicionalmente un cálculo que se da tanto el resultado como la excepción (si existe) del desencadenador CompletionStage y calcular un resultado arbitrario. El método #whenComplete whenComplete es similar, pero conserva el resultado de la fase de desencadenamiento en lugar de calcular uno nuevo. Dado que el resultado normal de una fase puede ser null, ambos métodos deben tener un cálculo estructurado por lo tanto:

{@code (result, exception) -> {
              if (exception == null) {
                // triggering stage completed normally
              } else {
                // triggering stage completed exceptionally
              }
            }}

Esta interfaz no define métodos para crear inicialmente, forzar la finalización normal o excepcionalmente, sondear el estado de finalización o los resultados, o esperar la finalización de una fase. Las implementaciones de CompletionStage pueden proporcionar medios para lograr tales efectos, según corresponda. El método #toCompletableFuture permite la interoperabilidad entre diferentes implementaciones de esta interfaz proporcionando un tipo de conversión común.

Agregado en la versión 1.8.

Java documentación para java.util.concurrent.CompletionStage.

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)
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 un JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Nombre Description
AcceptEither(ICompletionStage, IConsumer)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, se ejecuta con el resultado correspondiente como argumento para la acción proporcionada.

AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, se ejecuta mediante el ejecutor proporcionado, con el resultado correspondiente como argumento para la acción proporcionada.

AcceptEitherAsync(ICompletionStage, IConsumer)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con el resultado correspondiente como argumento para la acción proporcionada.

ApplyToEither(ICompletionStage, IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, se ejecuta con el resultado correspondiente como argumento para la función proporcionada.

ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, se ejecuta mediante el ejecutor proporcionado, con el resultado correspondiente como argumento para la función proporcionada.

ApplyToEitherAsync(ICompletionStage, IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con el resultado correspondiente como argumento para la función proporcionada.

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)
Exceptionally(IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa de forma excepcional, se ejecuta con la excepción de esta fase como argumento para la función proporcionada.

ExceptionallyAsync(IFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa de forma excepcional, se ejecuta con la excepción de esta fase como argumento para la función proporcionada, utilizando el Ejecutor proporcionado.

ExceptionallyAsync(IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa de forma excepcional, se ejecuta con la excepción de esta fase como argumento para la función proporcionada, utilizando la instalación de ejecución asincrónica predeterminada de esta fase.

ExceptionallyCompose(IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa de forma excepcional, se compone mediante los resultados de la función proporcionada aplicada a la excepción de esta fase.

ExceptionallyComposeAsync(IFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa de forma excepcional, se compone mediante los resultados de la función proporcionada aplicada a la excepción de esta fase, utilizando el Ejecutor proporcionado.

ExceptionallyComposeAsync(IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa de forma excepcional, se compone mediante los resultados de la función proporcionada aplicada a la excepción de esta fase, mediante la instalación de ejecución asincrónica predeterminada de esta fase.

Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
Handle(IBiFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normal o excepcionalmente, se ejecuta con el resultado y la excepción de esta fase como argumentos para la función proporcionada.

HandleAsync(IBiFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normal o excepcionalmente, se ejecuta mediante el ejecutor proporcionado, con el resultado y la excepción de esta fase como argumentos para la función proporcionada.

HandleAsync(IBiFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normal o excepcionalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con el resultado y la excepción de esta fase como argumentos para la función proporcionada.

RunAfterBoth(ICompletionStage, IRunnable)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, ejecuta la acción especificada.

RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, ejecuta la acción dada mediante el ejecutor proporcionado.

RunAfterBothAsync(ICompletionStage, IRunnable)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, ejecuta la acción dada mediante la instalación de ejecución asincrónica predeterminada de esta fase.

RunAfterEither(ICompletionStage, IRunnable)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, ejecuta la acción especificada.

RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, ejecuta la acción dada mediante el ejecutor proporcionado.

RunAfterEitherAsync(ICompletionStage, IRunnable)

Devuelve un nuevo objeto CompletionStage que, cuando esta o la otra fase dada se completan normalmente, ejecuta la acción dada mediante la instalación de ejecución asincrónica predeterminada de esta fase.

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Una fase de un cálculo posiblemente asincrónico, que realiza una acción o calcula un valor cuando se completa otra fase de finalización.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
ThenAccept(IConsumer)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, se ejecuta con el resultado de esta fase como argumento para la acción proporcionada.

ThenAcceptAsync(IConsumer, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, se ejecuta mediante el Ejecutor proporcionado, con el resultado de esta fase como argumento para la acción proporcionada.

ThenAcceptAsync(IConsumer)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con el resultado de esta fase como argumento para la acción proporcionada.

ThenAcceptBoth(ICompletionStage, IBiConsumer)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, se ejecuta con los dos resultados como argumentos para la acción proporcionada.

ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, se ejecuta con el ejecutor proporcionado, con los dos resultados como argumentos para la acción proporcionada.

ThenAcceptBothAsync(ICompletionStage, IBiConsumer)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con los dos resultados como argumentos para la acción proporcionada.

ThenApply(IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, se ejecuta con el resultado de esta fase como argumento para la función proporcionada.

ThenApplyAsync(IFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, se ejecuta mediante el ejecutor proporcionado, con el resultado de esta fase como argumento para la función proporcionada.

ThenApplyAsync(IFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con el resultado de esta fase como argumento para la función proporcionada.

ThenCombine(ICompletionStage, IBiFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, se ejecuta con los dos resultados como argumentos para la función proporcionada.

ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, se ejecuta con el ejecutor proporcionado, con los dos resultados como argumentos para la función proporcionada.

ThenCombineAsync(ICompletionStage, IBiFunction)

Devuelve un nuevo objeto CompletionStage que, cuando esta y la otra fase dada se completan normalmente, se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase, con los dos resultados como argumentos para la función proporcionada.

ThenCompose(IFunction)

Devuelve un nuevo objeto CompletionStage que se completa con el mismo valor que completionStage devuelto por la función especificada.

ThenComposeAsync(IFunction, IExecutor)

Devuelve un nuevo objeto CompletionStage que se completa con el mismo valor que completionStage devuelto por la función especificada, ejecutado mediante el ejecutor proporcionado.

ThenComposeAsync(IFunction)

Devuelve un nuevo objeto CompletionStage que se completa con el mismo valor que completionStage devuelto por la función especificada, que se ejecuta mediante la instalación de ejecución asincrónica predeterminada de esta fase.

ThenRun(IRunnable)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, ejecuta la acción especificada.

ThenRunAsync(IRunnable, IExecutor)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, ejecuta la acción dada mediante el ejecutor proporcionado.

ThenRunAsync(IRunnable)

Devuelve un nuevo objeto CompletionStage que, cuando esta fase se completa normalmente, ejecuta la acción dada mediante la instalación de ejecución asincrónica predeterminada de esta fase.

ToCompletableFuture()

Devuelve un CompletableFuture mantenimiento de las mismas propiedades de finalización que esta fase.

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)
WhenComplete(IBiConsumer)

Devuelve un nuevo completionStage con el mismo resultado o excepción que esta fase, que ejecuta la acción especificada cuando se completa esta fase.

WhenCompleteAsync(IBiConsumer, IExecutor)

Devuelve un nuevo objeto CompletionStage con el mismo resultado o excepción que esta fase, que ejecuta la acción dada mediante el Ejecutor proporcionado cuando se completa esta fase.

WhenCompleteAsync(IBiConsumer)

Devuelve un nuevo objeto CompletionStage con el mismo resultado o excepción que esta fase, que ejecuta la acción dada mediante la instalación de ejecución asincrónica predeterminada de esta fase cuando se completa esta fase.

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Una fase de un cálculo posiblemente asincrónico, que realiza una acción o calcula un valor cuando se completa otra fase de finalización.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a