Compartilhar via


IFuture Interface

Definição

A Future representa o resultado de uma computação assíncrona.

[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
Implementações

Comentários

A Future representa o resultado de uma computação assíncrona. Métodos são fornecidos para verificar se a computação está completa, para aguardar sua conclusão e para recuperar o resultado da computação. O resultado só pode ser recuperado usando o método get quando a computação tiver sido concluída, bloqueando se necessário até que esteja pronto. O cancelamento é realizado pelo cancel método. Métodos adicionais são fornecidos para determinar se a tarefa foi concluída normalmente ou foi cancelada. Uma vez que uma computação tenha sido concluída, a computação não poderá ser cancelada. Se você quiser usar um Future por uma questão de cancelabilidade, mas não fornecer um resultado utilizável, poderá declarar tipos do formulário Future<?> e retornar null como resultado da tarefa subjacente.

<b>Uso de exemplo</b> (Observe que as classes a seguir são todas inventadas.)

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

A FutureTask classe é uma implementação que implementa Runnable, e assim pode ser executada Future por um Executorarquivo . Por exemplo, a construção acima com submit poderia ser substituída por:

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

Efeitos de consistência de memória: Ações executadas pela computação <assíncrona i>happen-before</i> ações seguindo o correspondente Future.get() em outro thread.

Adicionado em 1.5.

Documentação Java para java.util.concurrent.Future.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Propriedades

Handle

Obtém o valor JNI do objeto Android subjacente.

(Herdado de IJavaObject)
IsCancelled

Retorna true se essa tarefa foi cancelada antes de ser concluída normalmente.

IsDone

Retorna true se essa tarefa for concluída.

JniIdentityHashCode

Retorna o valor de java.lang.System.identityHashCode() para a instância encapsulada.

(Herdado de IJavaPeerable)
JniManagedPeerState

Estado do par gerenciado.

(Herdado de IJavaPeerable)
JniPeerMembers

Acesso de membros e suporte à invocação.

(Herdado de IJavaPeerable)
PeerReference

Retorna uma JniObjectReference das instâncias do objeto Java encapsulado.

(Herdado de IJavaPeerable)

Métodos

Cancel(Boolean)

Tenta cancelar a execução desta tarefa.

Disposed()

Chamado quando a instância tiver sido descartada.

(Herdado de IJavaPeerable)
DisposeUnlessReferenced()

Se não houver referências pendentes a este caso, então chame Dispose(), caso contrário, não faz nada.

(Herdado de IJavaPeerable)
Finalized()

Chamado quando a instância tiver sido finalizada.

(Herdado de IJavaPeerable)
Get()

Aguarda, se necessário, que a computação seja concluída e, em seguida, recupera seu resultado.

Get(Int64, TimeUnit)

Aguarda, se necessário, pelo máximo o tempo determinado para que a computação seja concluída e, em seguida, recupera seu resultado, se disponível.

SetJniIdentityHashCode(Int32)

Defina o valor retornado por JniIdentityHashCode.

(Herdado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

A Future representa o resultado de uma computação assíncrona.

(Herdado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Defina o valor retornado por PeerReference.

(Herdado de IJavaPeerable)
UnregisterFromRuntime()

Cancele o registro dessa instância para que o tempo de execução não a retorne de chamadas futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Herdado de IJavaPeerable)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada em tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

A Future representa o resultado de uma computação assíncrona.

GetJniTypeName(IJavaPeerable)

A Future representa o resultado de uma computação assíncrona.

GetAsync(IFuture)

A Future representa o resultado de uma computação assíncrona.

GetAsync(IFuture, Int64, TimeUnit)

A Future representa o resultado de uma computação assíncrona.

Aplica-se a