IFuture Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 Executor
arquivo . 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 |
IsDone |
Retorna |
JniIdentityHashCode |
Retorna o valor de |
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 |
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 |
SetJniManagedPeerState(JniManagedPeerStates) |
A |
SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
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 |
GetJniTypeName(IJavaPeerable) |
A |
GetAsync(IFuture) |
A |
GetAsync(IFuture, Int64, TimeUnit) |
A |