Maison  >  Article  >  développement back-end  >  Application de minuterie C# Timer

Application de minuterie C# Timer

黄舟
黄舟original
2017-02-18 10:49:531950parcourir

À propos de la classe timer en C# Il existe trois classes timer en C# :
1. Défini dans System.Windows.Forms
2. Défini dans la classe System.Threading.Timer
3. Défini dans la classe System.Timers.Timer
System.Windows.Forms.Timer est utilisée dans WinForm. Elle est implémentée via le mécanisme de message Windows, similaire au contrôle Timer dans VB ou Delphi, et utilise l'API implémentée en interne par SetTimer. Ses principaux inconvénients sont que le timing n'est pas précis et qu'une boucle de messages est nécessaire, qui ne peut pas être utilisée par l'application console.
System.Timers.Timer et System.Threading.Timer sont très similaires. Ils sont implémentés via le pool de threads .NET. Ils sont légers, précis en termes de timing et n'ont aucune exigence particulière pour les applications et les messages. System.Timers.Timer peut également être appliqué à WinForm, remplaçant complètement le contrôle Timer ci-dessus. Leur inconvénient est qu’ils ne prennent pas en charge le glisser-déposer direct et nécessitent un codage manuel.
L'exemple suivant illustre l'utilisation du minuteur System.Timers.Timer.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Timers;
using System.Runtime.InteropServices;
using System.Threading;

namespace Timer001
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
           
        }
        //实例化Timer类
        System.Timers.Timer aTimer = new System.Timers.Timer();      

        private void button1_Click(object sender, EventArgs e)
        {
            this.SetTimerParam();
        }

        private void test(object source, System.Timers.ElapsedEventArgs e)
        {     
            MessageBox.Show(DateTime.Now.ToString());           
        }

        public void SetTimerParam()
        {
            //到时间的时候执行事件
            aTimer.Elapsed += new ElapsedEventHandler(test);
            aTimer.Interval = 1000;
            aTimer.AutoReset = true;//执行一次 false,一直执行true
            //是否执行System.Timers.Timer.Elapsed事件
            aTimer.Enabled = true;
        }
    }
}

L'effet obtenu est le suivant : l'heure actuelle du système apparaît toutes les secondes, comme indiqué ci-dessous :



Ce qui précède est le contenu de l'application de minuterie C# Timer. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn