Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Timer.Change (Método) (Int32, Int32)

Cambia el tiempo de inicio y el intervalo entre las distintas invocaciones de método para un temporizador, utilizando enteros de 32 bits con signo para medir los intervalos de tiempo.

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

public bool Change(
	int dueTime,
	int period
)

Parámetros

dueTime
Tipo: System.Int32
Período de tiempo de espera, en milisegundos, antes de que se invoque al método de devolución de llamada que se especificó en el momento de la construcción de Timer. Especifique Timeout.Infinite para evitar que el temporizador se reinicie. Especifique cero (0) para reiniciar inmediatamente el temporizador.
period
Tipo: System.Int32
Período de tiempo entre invocaciones del método de llamada especificado en el momento de la construcción de Timer, en milisegundos. Especifique Timeout.Infinite para deshabilitar la señalización periódica.

Valor devuelto

Tipo: System.Boolean
true si el temporizador se ha actualizado correctamente; en caso contrario, false.

ExcepciónCondición
ObjectDisposedException

Timer ya se ha eliminado.

ArgumentOutOfRangeException

El parámetro dueTime o period es negativo y no es igual a Infinite.

El método de devolución de llamada se invoca una vez cuando ha transcurrido dueTime y, a partir de entonces, cada vez que transcurre el intervalo de tiempo que especifica period.

Si dueTime es cero (0), se invoca al método de devolución de llamada inmediatamente. Si dueTime es Infinite, no se invoca nunca al método de devolución de llamada; el temporizador queda deshabilitado, pero se puede volver a habilitar llamando a Change y especificando un valor positivo para dueTime.

Si period es cero (0) o Infinite y dueTime no es Infinite, se invoca al método de devolución de llamada una vez; el comportamiento periódico del temporizador queda deshabilitado, pero se puede volver a habilitar llamando a Change y especificando un valor positivo para period.

En el ejemplo de código siguiente se muestra cómo se inicia Timer y cómo cambia su período después de un número establecido de llamadas.


using System;
using System.Threading;

class TimerExample
{
    static void Main()
    {
        // Create an event to signal the timeout count threshold in the
        // timer callback.
        AutoResetEvent autoEvent     = new AutoResetEvent(false);

        StatusChecker  statusChecker = new StatusChecker(10);

        // Create an inferred delegate that invokes methods for the timer.
        TimerCallback tcb = statusChecker.CheckStatus;

        // Create a timer that signals the delegate to invoke 
        // CheckStatus after one second, and every 1/4 second 
        // thereafter.
        Console.WriteLine("{0} Creating timer.\n", 
            DateTime.Now.ToString("h:mm:ss.fff"));
        Timer stateTimer = new Timer(tcb, autoEvent, 1000, 250);

        // When autoEvent signals, change the period to every
        // 1/2 second.
        autoEvent.WaitOne(5000, false);
        stateTimer.Change(0, 500);
        Console.WriteLine("\nChanging period.\n");

        // When autoEvent signals the second time, dispose of 
        // the timer.
        autoEvent.WaitOne(5000, false);
        stateTimer.Dispose();
        Console.WriteLine("\nDestroying timer.");
    }
}

class StatusChecker
{
    private int invokeCount;
    private int  maxCount;

    public StatusChecker(int count)
    {
        invokeCount  = 0;
        maxCount = count;
    }

    // This method is called by the timer delegate.
    public void CheckStatus(Object stateInfo)
    {
        AutoResetEvent autoEvent = (AutoResetEvent)stateInfo;
        Console.WriteLine("{0} Checking status {1,2}.", 
            DateTime.Now.ToString("h:mm:ss.fff"), 
            (++invokeCount).ToString());

        if(invokeCount == maxCount)
        {
            // Reset the counter and signal Main.
            invokeCount  = 0;
            autoEvent.Set();
        }
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft