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
Este tema aún no ha recibido ninguna valoración - Valorar este tema

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

Cambia el tiempo de inicio y el intervalo entre las distintas invocaciones del método para un temporizador, utilizando los valores de TimeSpan para medir los intervalos de tiempo.

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)
public bool Change(
	TimeSpan dueTime,
	TimeSpan period
)

Parámetros

dueTime
Tipo: System.TimeSpan
TimeSpan que representa el período tiempo de retraso antes de que se llame al método de devolución de llamada que se especificó cuando se creó Timer. Especifique menos un (-1) milisegundo para evitar que se reinicie el temporizador. Especifique cero (0) para reiniciar inmediatamente el temporizador.
period
Tipo: System.TimeSpan
Período de tiempo entre invocaciones del método de llamada especificado en el momento de la construcción de Timer. Especifique menos un (-1) milisegundo 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 menor que -1, en milisegundos.

NotSupportedException

El parámetro dueTime o period es mayor que 4294967294, en milisegundos.

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 el valor de dueTime es -1 milisegundo, no se llama nunca al método de devolución de llamada y el temporizador queda deshabilitado, pero se puede volver a habilitar llamando al método Change y especificando un valor positivo para dueTime.

Si el valor de period es 0 o -1 milisegundo y el valor de dueTime es positivo, se llama al método de devolución de llamada una vez y el comportamiento periódico del temporizador queda deshabilitado, pero se puede volver a habilitar llamando al método Change y especificando un valor mayor que cero 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()
    {
        AutoResetEvent autoEvent     = new AutoResetEvent(false);
        StatusChecker  statusChecker = new StatusChecker(10);

        // Create the delegate that invokes methods for the timer.
        TimerCallback timerDelegate = 
            new TimerCallback(statusChecker.CheckStatus);

        TimeSpan delayTime = new TimeSpan(0, 0, 1);
        TimeSpan intervalTime = new TimeSpan(0, 0, 0, 0, 250);

        // 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(
            timerDelegate, autoEvent, delayTime, intervalTime);

        // When autoEvent signals, change the period to every 
        // 1/2 second.
        autoEvent.WaitOne(5000, false);
        stateTimer.Change(new TimeSpan(0), 
            intervalTime + intervalTime);
        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
{
    int invokeCount, 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.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.