Timer Classe
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.
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano.
[Android.Runtime.Register("java/util/Timer", DoNotGenerateAcw=true)]
public class Timer : Java.Lang.Object
[<Android.Runtime.Register("java/util/Timer", DoNotGenerateAcw=true)>]
type Timer = class
inherit Object
- Herança
- Atributos
Comentários
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. As tarefas podem ser agendadas para execução única ou para execução repetida em intervalos regulares.
Correspondente a cada Timer objeto é um único thread em segundo plano que é usado para executar todas as tarefas do temporizador, sequencialmente. As tarefas do temporizador devem ser concluídas rapidamente. Se uma tarefa de temporizador levar tempo excessivo para ser concluída, ela "encadeia" o thread de execução da tarefa do temporizador. Isso pode, por sua vez, atrasar a execução de tarefas subsequentes, que podem "agrupar" e executar em sucessão rápida quando (e se) a tarefa ofensiva finalmente for concluída.
Depois que a última referência dinâmica a um Timer objeto desaparecer e todas as tarefas pendentes tiverem concluído a execução, o thread de execução da tarefa do temporizador será encerrado normalmente (e ficará sujeito à coleta de lixo). No entanto, isso pode levar muito tempo para ocorrer arbitrariamente. Por padrão, o thread de execução de tarefa não é executado como um thread daemon, portanto, ele é capaz de impedir que um aplicativo encerre. Se um chamador quiser encerrar rapidamente o thread de execução de tarefa de um temporizador, o chamador deverá invocar o método do cancel temporizador.
Se o thread de execução da tarefa do temporizador for encerrado inesperadamente, por exemplo, como seu stop método é invocado, qualquer outra tentativa de agendar uma tarefa no temporizador resultará em um IllegalStateExceptionmétodo do temporizador como se o método do cancel temporizador tivesse sido invocado.
Essa classe é thread-safe: vários threads podem compartilhar um único Timer objeto sem a necessidade de sincronização externa.
Essa classe não oferece garantias em tempo real: ela agenda tarefas usando o Object.wait(long) método.
Java 5.0 introduziu o java.util.concurrent pacote e um dos utilitários de simultaneidade nele é o java.util.concurrent.ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor que é um pool de threads para executar repetidamente tarefas a uma determinada taxa ou atraso. Ele é efetivamente uma substituição mais versátil para a Timer/TimerTask combinação, pois permite vários threads de serviço, aceita várias unidades de tempo e não requer subclasse TimerTask (basta implementar).Runnable A configuração ScheduledThreadPoolExecutor com um thread o torna equivalente a Timer.
Observação de implementação: essa classe é dimensionada para um grande número de tarefas agendadas simultaneamente (milhares não devem apresentar nenhum problema). Internamente, ele usa um heap binário para representar sua fila de tarefas, portanto, o custo para agendar uma tarefa é O(log n), onde n é o número de tarefas agendadas simultaneamente.
Observação de implementação: todos os construtores iniciam um thread de temporizador.
Adicionado em 1.3.
Documentação Java para java.util.Timer.
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 |
|---|---|
| Timer() |
Cria um novo temporizador. |
| Timer(Boolean) |
Cria um novo temporizador cujo thread associado pode ser especificado para Thread#setDaemon ser executado como um daemon. |
| Timer(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime. |
| Timer(String, Boolean) |
Cria um novo temporizador cujo thread associado tem o nome especificado e pode ser especificado para Thread#setDaemon executar como um daemon. |
| Timer(String) |
Cria um novo temporizador cujo thread associado tem o nome especificado. |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de tempo de execução deste |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Object) |
| JniManagedPeerState |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| JniPeerMembers |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| ThresholdClass |
Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
| ThresholdType |
Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
| Nome | Description |
|---|---|
| Cancel() |
Encerra esse temporizador, descartando todas as tarefas agendadas no momento. |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| Dispose() |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| Dispose(Boolean) |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| DisposeUnlessReferenced() |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| Equals(Object) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| 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 desse objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| Purge() |
Remove todas as tarefas canceladas da fila de tarefas desse temporizador. |
| Schedule(TimerTask, Date, Int64) |
Agenda a tarefa especificada para execução repetida de atraso fixo, começando no momento especificado. |
| Schedule(TimerTask, Date) |
Agenda a tarefa especificada para execução no momento especificado. |
| Schedule(TimerTask, Int64, Int64) |
Agenda a tarefa especificada para execução repetida de atraso fixo, começando após o atraso especificado. |
| Schedule(TimerTask, Int64) |
Agenda a tarefa especificada para execução após o atraso especificado. |
| ScheduleAtFixedRate(TimerTask, Date, Int64) |
Agenda a tarefa especificada para execução de taxa fixa repetida, começando no momento especificado. |
| ScheduleAtFixedRate(TimerTask, Int64, Int64) |
Agenda a tarefa especificada para execução de taxa fixa repetida, começando após o atraso especificado. |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| ToArray<T>() |
Cria uma matriz gerenciada com base nesse wrapper de matriz Java. (Herdado de Object) |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnregisterFromRuntime() |
Cancela o registro desse par Java do runtime de interoperabilidade. (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 seja ativado, normalmente sendo <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 seja ativado, normalmente sendo <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() |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| IJavaPeerable.Finalized() |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. (Herdado de JavaObject) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada pelo tempo de execução do Android. |
| JavaCast<TResult>(IJavaObject) |
Uma instalação para threads agendar tarefas para execução futura em um thread em segundo plano. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |