Comparteix a través de


Timer.AutoReset Propiedad

Definición

Obtiene o establece un valor booleano que indica si Timer debe generar el evento Elapsed solo una vez (false) o repetidamente (true).

public:
 property bool AutoReset { bool get(); void set(bool value); };
public bool AutoReset { get; set; }
[System.Timers.TimersDescription("TimerAutoReset")]
public bool AutoReset { get; set; }
member this.AutoReset : bool with get, set
[<System.Timers.TimersDescription("TimerAutoReset")>]
member this.AutoReset : bool with get, set
Public Property AutoReset As Boolean

Valor de propiedad

Es true si Timer debe generar el evento Elapsed cada vez que transcurre el intervalo; es false si debe generar el evento Elapsed solo una vez, cuando el intervalo transcurre por primera vez. De manera predeterminada, es true.

Atributos

Ejemplos

En el ejemplo siguiente se crea un Timer cuyo Elapsed evento se desencadena después de 1,5 segundos. A continuación, su controlador de eventos muestra "Hola mundo!" en la consola.

#using <system.dll>

using namespace System;
using namespace System::Timers;

public ref class Timer2
{
private: 
   static System::Timers::Timer^ aTimer;

public:
   static void Main()
   {
      // Create a new Timer with Interval set to 1.5 seconds.
      double interval = 1500.0;
      aTimer = gcnew System::Timers::Timer(interval);

      // Hook up the event handler for the Elapsed event.
      aTimer->Elapsed += gcnew ElapsedEventHandler( OnTimedEvent );
      
      // Only raise the event the first time Interval elapses.
      aTimer->AutoReset = false;
      aTimer->Enabled = true;

      // Ensure the event fires before the exit message appears.
      System::Threading::Thread::Sleep((int) interval * 2);
      Console::WriteLine("Press the Enter key to exit the program.");
      Console::ReadLine();

      // If the timer is declared in a long-running method, use
      // KeepAlive to prevent garbage collection from occurring
      // before the method ends.
      //GC::KeepAlive(aTimer);
   }

private:
   // Handle the Elapsed event.
   static void OnTimedEvent( Object^ /*source*/, ElapsedEventArgs^ /*e*/ )
   {
      Console::WriteLine( "Hello World!" );
   }

};

int main()
{
   Timer2::Main();
}
// The example displays the following output:
//       Hello World!
//       Press the Enter key to exit the program.
using System;
using System.Timers;

public class Example
{
    private static Timer aTimer;

    public static void Main()
    {
        // Create a timer with a 1.5 second interval.
        double interval = 1500.0;
        aTimer = new System.Timers.Timer(interval);

        // Hook up the event handler for the Elapsed event.
        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

        // Only raise the event the first time Interval elapses.
        aTimer.AutoReset = false;
        aTimer.Enabled = true;

        // Ensure the event fires before the exit message appears.
        System.Threading.Thread.Sleep((int) interval * 2);
        Console.WriteLine("Press the Enter key to exit the program.");
        Console.ReadLine();
    }

    // Handle the Elapsed event.
    private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        Console.WriteLine("Hello World!");
    }
}
// This example displays the following output:
//       Hello World!
//       Press the Enter key to exit the program.
open System.Threading
open System.Timers

// Handle the Elapsed event.
let onTimedEvent source e =
    printfn "Hello World!"

// Create a timer with a 1.5 second interval.
let interval = 1500.
let aTimer = new Timer(interval)

// Hook up the event handler for the Elapsed event.
aTimer.Elapsed.AddHandler(ElapsedEventHandler onTimedEvent)

// Only raise the event the first time Interval elapses.
aTimer.AutoReset <- false
aTimer.Enabled <- true

// Ensure the event fires before the exit message appears.
Thread.Sleep(interval * 2. |> int)
printfn "Press the Enter key to exit the program."
stdin.ReadLine() |> ignore

// This example displays the following output:
//       Hello World!
//       Press the Enter key to exit the program.
Imports System.Timers

Public Module Example
    Private aTimer As System.Timers.Timer

    Public Sub Main()
        ' Create a timer with a 1.5 second interval.
        Dim interval As Double = 1500.0
        aTimer = New System.Timers.Timer(interval)

        ' Hook up the event handler for the Elapsed event.
        AddHandler aTimer.Elapsed, AddressOf OnTimedEvent

        ' Only raise the event the first time Interval elapses.
        aTimer.AutoReset = False
        aTimer.Enabled = True
        
        
        ' Ensure the event fires before the exit message appears.
        System.Threading.Thread.Sleep(CInt(interval * 2))
        Console.WriteLine("Press the Enter key to exit the program.")
        Console.ReadLine()

        ' If the timer is declared in a long-running method, use
        ' KeepAlive to prevent garbage collection from occurring
        ' before the method ends.
        'GC.KeepAlive(aTimer)
    End Sub

    ' Specify what you want to happen when the Elapsed event is 
    ' raised.
    Private Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
        Console.WriteLine("Hello World!")
    End Sub
End Module
' This example displays the following output:
'       Hello World!
'       Press the Enter key to exit the program.

Comentarios

Si AutoReset es false, Start se debe llamar al método para volver a iniciar el recuento.

Restablecer el intervalo afecta cuando se genera el Elapsed evento. Por ejemplo, si establece el intervalo en 5 segundos y, a continuación, establece la Enabled propiedad trueen , se establece el recuento en el momento Enabled . Si restablece el intervalo en 10 segundos cuando el recuento es de 3 segundos, el Elapsed evento se genera por primera vez 13 segundos después de establecer truela Enabled propiedad en .

Se aplica a

Consulte también