Compartilhar via


ExecutorCompletionService Classe

Definição

A CompletionService que usa um fornecido Executor para executar tarefas.

[Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public class ExecutorCompletionService : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.ICompletionService
[<Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type ExecutorCompletionService = class
    inherit Object
    interface ICompletionService
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Herança
ExecutorCompletionService
Atributos
Implementações

Comentários

A CompletionService que usa um fornecido Executor para executar tarefas. Essa classe organiza que as tarefas enviadas são, após a conclusão, colocadas em uma fila acessível usando takeo . A classe é leve o suficiente para ser adequada para uso transitório ao processar grupos de tarefas.

<b>Exemplos de uso.</b>

Suponha que você tenha um conjunto de solvers para um determinado problema, cada um retornando um valor de algum tipo Result, e gostaria de executá-los simultaneamente, processando os resultados de cada um deles que retornam um valor não nulo, em algum método use(Result r). Você pode escrever isso como:

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException, ExecutionException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              solvers.forEach(cs::submit);
              for (int i = solvers.size(); i > 0; i--) {
                Result r = cs.take().get();
                if (r != null)
                  use(r);
              }
            }}

Suponha, em vez disso, que você gostaria de usar o primeiro resultado não nulo do conjunto de tarefas, ignorando qualquer uma que encontre exceções e cancelando todas as outras tarefas quando a primeira estiver pronta:

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              int n = solvers.size();
              List<Future<Result>> futures = new ArrayList<>(n);
              Result result = null;
              try {
                solvers.forEach(solver -> futures.add(cs.submit(solver)));
                for (int i = n; i > 0; i--) {
                  try {
                    Result r = cs.take().get();
                    if (r != null) {
                      result = r;
                      break;
                    }
                  } catch (ExecutionException ignore) {}
                }
              } finally {
                futures.forEach(future -> future.cancel(true));
              }

              if (result != null)
                use(result);
            }}

Adicionado em 1.5.

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

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.

Construtores

ExecutorCompletionService(IExecutor)

Cria um ExecutorCompletionService usando o executor fornecido para execução de tarefas base e uma fila de LinkedBlockingQueue conclusão.

ExecutorCompletionService(IExecutor, IBlockingQueue)

Cria um ExecutorCompletionService usando o executor fornecido para execução da tarefa base e a fila fornecida como sua fila de conclusão.

ExecutorCompletionService(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução.

Propriedades

Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
JniPeerMembers

A CompletionService que usa um fornecido Executor para executar tarefas.

PeerReference

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
ThresholdClass

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Dispose()

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
Dispose(Boolean)

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
Equals(Object)

Indica se algum outro objeto é "igual" a este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Poll()

Recupera e remove o Futuro que representa a próxima tarefa concluída ou null , se nenhum estiver presente.

Poll(Int64, TimeUnit)

Recupera e remove o Futuro que representa a próxima tarefa concluída, aguardando, se necessário, até o tempo de espera especificado, se nenhum ainda estiver presente.

PollAsync()

A CompletionService que usa um fornecido Executor para executar tarefas.

PollAsync(Int64, TimeUnit)

A CompletionService que usa um fornecido Executor para executar tarefas.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle.

(Herdado de Object)
Submit(ICallable)

A CompletionService que usa um fornecido Executor para executar tarefas.

Submit(IRunnable, Object)

A CompletionService que usa um fornecido Executor para executar tarefas.

Take()

Recupera e remove o Futuro que representa a próxima tarefa concluída, aguardando se nenhum ainda estiver presente.

TakeAsync()

A CompletionService que usa um fornecido Executor para executar tarefas.

ToArray<T>()

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

IJavaPeerable.Disposed()

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.Finalized()

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

A CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)

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 CompletionService que usa um fornecido Executor para executar tarefas.

GetJniTypeName(IJavaPeerable)

A CompletionService que usa um fornecido Executor para executar tarefas.

Aplica-se a