ExecutorCompletionService Classe

Definição

Um 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

Um 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 take. 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 solucionadores para um determinado problema, cada um retornando um valor de algum tipo Resulte 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 todas as 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.

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

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

Construtores

Nome Description
ExecutorCompletionService(IExecutor, IBlockingQueue)

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

ExecutorCompletionService(IExecutor)

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

ExecutorCompletionService(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
JniPeerMembers

Um CompletionService que usa um fornecido Executor para executar tarefas.

PeerReference

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Dispose()

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
Dispose(Boolean)

Um 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 nenhuma está 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()

Um CompletionService que usa um fornecido Executor para executar tarefas.

PollAsync(Int64, TimeUnit)

Um CompletionService que usa um fornecido Executor para executar tarefas.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
Submit(ICallable)

Um CompletionService que usa um fornecido Executor para executar tarefas.

Submit(IRunnable, Object)

Um 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 nenhuma ainda estiver presente.

TakeAsync()

Um CompletionService que usa um fornecido Executor para executar tarefas.

ToArray<T>()

Um 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()

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
Wait()

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

(Herdado de Object)
Wait(Int64, Int32)

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

(Herdado de Object)
Wait(Int64)

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

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.Finalized()

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um CompletionService que usa um fornecido Executor para executar tarefas.

(Herdado de Object)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Um CompletionService que usa um fornecido Executor para executar tarefas.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a