Heim  >  Artikel  >  Backend-Entwicklung  >  C# Timer-Timer-Anwendung

C# Timer-Timer-Anwendung

黄舟
黄舟Original
2017-02-18 10:49:531915Durchsuche

Über die Timer-Klasse in C# Es gibt drei Timer-Klassen in C#:
1. Definiert in System.Windows.Forms
2. Definiert in der System.Threading.Timer-Klasse
3. Definiert in Die System.Timers.Timer-Klasse
System.Windows.Forms.Timer wird über den Windows-Nachrichtenmechanismus implementiert, ähnlich dem Timer-Steuerelement in VB oder Delphi, und verwendet die intern von SetTimer implementierte API. Die Hauptnachteile bestehen darin, dass das Timing nicht präzise ist und eine Nachrichtenschleife erforderlich ist, die von der Konsolenanwendung nicht verwendet werden kann.
System.Timers.Timer und System.Threading.Timer sind sich sehr ähnlich. Sie werden über den .NET Thread Pool implementiert. Sie sind leichtgewichtig, präzise im Timing und stellen keine besonderen Anforderungen an Anwendungen und Nachrichten. System.Timers.Timer kann auch auf WinForm angewendet werden und ersetzt das obige Timer-Steuerelement vollständig. Ihr Nachteil besteht darin, dass sie kein direktes Drag-and-Drop unterstützen und eine manuelle Codierung erfordern.
Das folgende Beispiel veranschaulicht die Verwendung des System.Timers.Timer-Timers.


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;
        }
    }
}

Der erzielte Effekt ist: Die aktuelle Systemzeit wird jede Sekunde angezeigt, wie unten gezeigt:



Das Obige ist der Inhalt der C#-Timer-Timer-Anwendung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn