Compartilhar via


ScheduledThreadPoolExecutor Classe

Definição

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

[Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)]
public class ScheduledThreadPoolExecutor : Java.Util.Concurrent.ThreadPoolExecutor, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IScheduledExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)>]
type ScheduledThreadPoolExecutor = class
    inherit ThreadPoolExecutor
    interface IScheduledExecutorService
    interface IExecutorService
    interface IExecutor
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Herança
Atributos
Implementações

Comentários

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente. Essa classe é preferível a java.util.Timer quando vários threads de trabalho são necessários ou quando a flexibilidade ou os recursos adicionais de ThreadPoolExecutor (que essa classe estende) são necessários.

As tarefas atrasadas são executadas assim que são habilitadas, mas sem garantias em tempo real sobre quando, depois de habilitadas, serão iniciadas. As tarefas agendadas exatamente para o mesmo tempo de execução são habilitadas na ordem de envio FIFO (first-in-first-out).

Quando uma tarefa enviada é cancelada antes de ser executada, a execução é suprimida. Por padrão, essa tarefa cancelada não é removida automaticamente da fila de trabalho até que seu atraso decorra. Embora isso permita mais inspeção e monitoramento, também pode causar retenção ilimitada de tarefas canceladas.

Execuções sucessivas de uma tarefa periódica agendada via #scheduleAtFixedRate scheduleAtFixedRate ou #scheduleWithFixedDelay scheduleWithFixedDelay não se sobrepõem. Embora execuções diferentes possam ser executadas por threads <diferentes, os efeitos de execuções anteriores i>acontecem antes</i> dos subsequentes.

Embora essa classe herde do ThreadPoolExecutor, alguns dos métodos de ajuste herdados não são úteis para ela. Em particular, como ele atua como um pool de tamanho fixo usando corePoolSize threads e uma fila ilimitada, os ajustes não maximumPoolSize têm efeito útil. Além disso, quase nunca é uma boa ideia definir corePoolSize como zero ou usar allowCoreThreadTimeOut porque isso pode deixar o pool sem threads para lidar com tarefas quando elas se tornarem qualificadas para execução.

Assim como com ThreadPoolExecutor, se não especificado de outra forma, essa classe usa Executors#defaultThreadFactory como a fábrica de thread padrão e ThreadPoolExecutor.AbortPolicy como o manipulador de execução rejeitado padrão.

<b>Notas de extensão:</b> Esta classe substitui os ThreadPoolExecutor#execute(Runnable) execute métodos e AbstractExecutorService#submit(Runnable) submit para gerar objetos internos ScheduledFuture para controlar atrasos e agendamento por tarefa. Para preservar a funcionalidade, quaisquer substituições adicionais desses métodos em subclasses devem invocar versões de superclasse, o que efetivamente desabilita a personalização de tarefas adicionais. No entanto, essa classe fornece método decorateTask de extensão protegido alternativo (uma versão para Runnable e Callable) que pode ser usado para personalizar os tipos de tarefa concretos usados para executar comandos inseridos via execute, submit, schedule, scheduleAtFixedRatee scheduleWithFixedDelay. Por padrão, a ScheduledThreadPoolExecutor usa um tipo de tarefa que estende FutureTask. No entanto, isso pode ser modificado ou substituído usando subclasses do formulário:

{@code
            public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {

              static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }

              protected <V> RunnableScheduledFuture<V> decorateTask(
                           Runnable r, RunnableScheduledFuture<V> task) {
                  return new CustomTask<V>(r, task);
              }

              protected <V> RunnableScheduledFuture<V> decorateTask(
                           Callable<V> c, RunnableScheduledFuture<V> task) {
                  return new CustomTask<V>(c, task);
              }
              // ... add constructors, etc.
            }}

Adicionado em 1.5.

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

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

ScheduledThreadPoolExecutor(Int32)

Cria um novo ScheduledThreadPoolExecutor com o tamanho de pool principal determinado.

ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler)

Cria um novo ScheduledThreadPoolExecutor com os parâmetros iniciais fornecidos.

ScheduledThreadPoolExecutor(Int32, IThreadFactory)

Cria um novo ScheduledThreadPoolExecutor com os parâmetros iniciais fornecidos.

ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler)

Cria um novo ScheduledThreadPoolExecutor com os parâmetros iniciais fornecidos.

ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership)

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

Propriedades

ActiveCount

Retorna o número aproximado de threads que estão executando tarefas ativamente.

(Herdado de ThreadPoolExecutor)
Class

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

(Herdado de Object)
CompletedTaskCount

Retorna o número total aproximado de tarefas que concluíram a execução.

(Herdado de ThreadPoolExecutor)
ContinueExistingPeriodicTasksAfterShutdownPolicy

Obtém a política sobre se deve continuar executando tarefas periódicas existentes mesmo quando esse executor tiver sido shutdown. -ou- Define a política sobre se deve continuar executando tarefas periódicas existentes mesmo quando esse executor tiver sido shutdown.

CorePoolSize

Retorna o número principal de threads. -ou- Define o número principal de threads.

(Herdado de ThreadPoolExecutor)
ExecuteExistingDelayedTasksAfterShutdownPolicy

Obtém a política sobre a execução de tarefas atrasadas existentes mesmo quando esse executor tiver sido shutdown. -ou- Define a política sobre a execução de tarefas atrasadas existentes mesmo quando esse executor tiver sido shutdown.

Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
IsShutdown

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de ThreadPoolExecutor)
IsTerminated

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de ThreadPoolExecutor)
IsTerminating

Retorna true se esse executor estiver no processo de encerramento após #shutdown ou #shutdownNow mas não tiver terminado completamente.

(Herdado de ThreadPoolExecutor)
JniIdentityHashCode

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
JniPeerMembers

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

LargestPoolSize

Retorna o maior número de threads que já estiveram simultaneamente no pool.

(Herdado de ThreadPoolExecutor)
MaximumPoolSize

Retorna o número máximo permitido de threads. -ou- Define o número máximo permitido de threads.

(Herdado de ThreadPoolExecutor)
PeerReference

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
PoolSize

Retorna o número atual de threads no pool.

(Herdado de ThreadPoolExecutor)
Queue

Retorna a fila de tarefas usada por esse executor.

(Herdado de ThreadPoolExecutor)
RejectedExecutionHandler

Retorna o manipulador atual para tarefas não executáveis. -ou- Define um novo manipulador para tarefas não executáveis.

(Herdado de ThreadPoolExecutor)
RemoveOnCancelPolicy

Obtém a política sobre se as tarefas canceladas devem ser removidas imediatamente da fila de trabalho no momento do cancelamento. -ou- Define a política sobre se as tarefas canceladas devem ser imediatamente removidas da fila de trabalho no momento do cancelamento.

TaskCount

Retorna o número total aproximado de tarefas que já foram agendadas para execução.

(Herdado de ThreadPoolExecutor)
ThreadFactory

Retorna a fábrica de threads usada para criar novos threads. -ou- Define a fábrica de threads usada para criar novos threads.

(Herdado de ThreadPoolExecutor)
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

AfterExecute(IRunnable, Throwable)

Método invocado após a conclusão da execução do Runnable fornecido.

(Herdado de ThreadPoolExecutor)
AllowCoreThreadTimeOut(Boolean)

Define a política que rege se os threads principais podem atingir o tempo limite e terminar se nenhuma tarefa chegar dentro do tempo de manutenção, sendo substituídos se necessário quando novas tarefas chegarem.

(Herdado de ThreadPoolExecutor)
AllowsCoreThreadTimeOut()

Retorna true se esse pool permitir que os threads principais atinjam o tempo limite e terminem se nenhuma tarefa chegar dentro do tempo keepAlive, sendo substituídos se necessário quando novas tarefas chegarem.

(Herdado de ThreadPoolExecutor)
AwaitTermination(Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de ThreadPoolExecutor)
AwaitTerminationAsync(Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
BeforeExecute(Thread, IRunnable)

Método invocado antes de executar o Runnable fornecido no thread fornecido.

(Herdado de ThreadPoolExecutor)
Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
DecorateTask(ICallable, IRunnableScheduledFuture)

Modifica ou substitui a tarefa usada para executar um chamável.

DecorateTask(IRunnable, IRunnableScheduledFuture)

Modifica ou substitui a tarefa usada para executar um executável.

Dispose()

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
Dispose(Boolean)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
Equals(Object)

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

(Herdado de Object)
Execute(IRunnable)

Executa a tarefa dada em algum momento no futuro.

(Herdado de ThreadPoolExecutor)
GetHashCode()

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

(Herdado de Object)
GetKeepAliveTime(TimeUnit)

Retorna o tempo de manutenção do thread, que é a quantidade de tempo que os threads podem permanecer ociosos antes de serem encerrados.

(Herdado de ThreadPoolExecutor)
InvokeAll(ICollection)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
InvokeAll(ICollection, Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
InvokeAny(ICollection)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
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)
NewTaskFor(ICallable)

Retorna um RunnableFuture para a determinada tarefa chamável.

(Herdado de AbstractExecutorService)
NewTaskFor(IRunnable, Object)

Retorna a RunnableFuture para o determinado valor executável e padrão.

(Herdado de AbstractExecutorService)
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)
PrestartAllCoreThreads()

Inicia todos os threads principais, fazendo com que eles esperem ociosamente pelo trabalho.

(Herdado de ThreadPoolExecutor)
PrestartCoreThread()

Inicia um thread principal, fazendo com que ele aguarde ociosamente pelo trabalho.

(Herdado de ThreadPoolExecutor)
Purge()

Tenta remover da fila de trabalho todas as Future tarefas que foram canceladas.

(Herdado de ThreadPoolExecutor)
Remove(IRunnable)

Remove essa tarefa da fila interna do executor se ela estiver presente, fazendo com que ela não seja executada se ainda não tiver sido iniciada.

(Herdado de ThreadPoolExecutor)
Schedule(ICallable, Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

Schedule(IRunnable, Int64, TimeUnit)

Cria e executa uma ação one-shot que se torna habilitada após o atraso determinado.

ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit)

Apresenta uma ação periódica que se torna habilitada primeiro após o atraso inicial dado e, posteriormente, com o período determinado; ou seja, as execuções começarão depois initialDelay, depois initialDelay + period, depois initialDelay + 2 * period, e assim por diante.

ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit)

Apresenta uma ação periódica que se torna habilitada primeiro após o atraso inicial dado e, posteriormente, com o atraso dado entre o término de uma execução e o início da próxima.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle.

(Herdado de Object)
SetKeepAliveTime(Int64, TimeUnit)

Define o tempo de manutenção do thread, que é a quantidade de tempo que os threads podem permanecer ociosos antes de serem encerrados.

(Herdado de ThreadPoolExecutor)
Shutdown()

Inicia um desligamento ordenado no qual as tarefas enviadas anteriormente são executadas, mas nenhuma nova tarefa será aceita.

(Herdado de ThreadPoolExecutor)
ShutdownNow()

Tenta interromper todas as tarefas em execução ativa, interrompe o processamento de tarefas em espera e retorna uma lista das tarefas que estavam aguardando execução.

(Herdado de ThreadPoolExecutor)
Submit(ICallable)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
Submit(IRunnable)

Envia uma tarefa Runnable para execução e retorna um Future representando essa tarefa.

(Herdado de AbstractExecutorService)
Submit(IRunnable, Object)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de AbstractExecutorService)
Terminated()

Método invocado quando o Executor é encerrado.

(Herdado de ThreadPoolExecutor)
ToArray<T>()

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
ToString()

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

(Herdado de Object)
UnregisterFromRuntime()

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

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

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
IJavaPeerable.Finalized()

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

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

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

GetJniTypeName(IJavaPeerable)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

InvokeAnyAsync(IExecutorService, ICollection)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

Um ThreadPoolExecutor que também pode agendar comandos para serem executados após um determinado atraso ou para serem executados periodicamente.

Aplica-se a