Csharp/C Sharp by API/System.Timers/Timer

Материал из .Net Framework эксперт
Версия от 15:11, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

new Timer()

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form {

   public System.Timers.Timer timer1;
   private System.Windows.Forms.Label label1;
   public Form1() {
       this.timer1 = new System.Timers.Timer();
       this.label1 = new System.Windows.Forms.Label();
       ((System.ruponentModel.ISupportInitialize)(this.timer1)).BeginInit();
       this.SuspendLayout();
       // 
       // timer1
       // 
       this.timer1.Enabled = true;
       this.timer1.SynchronizingObject = this;
       this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimerElapsed);
       // 
       // label1
       // 
       this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
       this.label1.ForeColor = System.Drawing.SystemColors.Highlight;
       this.label1.Location = new System.Drawing.Point(24, 8);
       this.label1.Name = "label1";
       this.label1.Size = new System.Drawing.Size(224, 48);
       this.label1.TabIndex = 0;
       this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
       // 
       // Form1
       // 
       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
       this.ClientSize = new System.Drawing.Size(292, 69);
       this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                     this.label1});
       this.Text = "My Clock";
       this.Load += new System.EventHandler(this.Form1_Load);
       ((System.ruponentModel.ISupportInitialize)(this.timer1)).EndInit();
       this.ResumeLayout(false);
   }
   [STAThread]
   static void Main() {
       Application.Run(new Form1());
   }
   private void Form1_Load(object sender, System.EventArgs e) {
       timer1.Interval = 1000;
       timer1.Start();
       timer1.Enabled = true;
   }
   private void OnTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) {
       label1.Text = DateTime.Now.ToString();
   }

}


 </source>


new Timer(new TimerCallback(TimerHandler), null,0)

<source lang="csharp"> using System; using System.Threading; public class MainClass {

 public static AutoResetEvent A = new AutoResetEvent(false);
 public static int index = 0;
 
 public static int Main(){
   Timer T = new Timer(new TimerCallback(TimerHandler), null, 5000, 10000);
   A.WaitOne();
   Console.WriteLine("Main Thread event signaled");
   T.Dispose();
   return 0;
 }
 public static void TimerHandler(object state)
 {
   Console.WriteLine("TimerHandler");
   if (index == 5)
     A.Set();
   index++;
   Console.WriteLine(index);
 }

}


 </source>


Timer.Elapsed

<source lang="csharp">

using System; using System.Collections.Generic; using System.Text; using System.Timers; class Program {

   static int counter = 0;
   static string displayString = "This string will appear one letter at a time. ";
   static void Main(string[] args) {
       Timer myTimer = new Timer(100);
       myTimer.Elapsed += new ElapsedEventHandler(WriteChar);
       myTimer.Start();
       Console.ReadKey();
   }
   static void WriteChar(object source, ElapsedEventArgs e) {
       Console.Write(displayString[counter++ % displayString.Length]);
   }

}


 </source>


Timer.Interval

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class DigitalClock: Form {

    public static void Main()
    {
         Application.Run(new DigitalClock());
    }
    public DigitalClock()
    {
         ResizeRedraw = true;
         Timer timer    = new Timer();
         timer.Tick    += new EventHandler(TimerOnTick);
         timer.Interval = 1000;
         timer.Start();
    }
    private void TimerOnTick(object obj, EventArgs ea)
    {
         Invalidate();
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics grfx    = pea.Graphics;
         DateTime dt      = DateTime.Now;
         string   strTime = dt.ToString("d") + "\n" + dt.ToString("T");
         SizeF    sizef   = grfx.MeasureString(strTime, Font);
         float    fScale  = Math.Min(ClientSize.Width  / sizef.Width,
                                     ClientSize.Height / sizef.Height);
         Font     font    = new Font(Font.FontFamily,
                                     fScale * Font.SizeInPoints);
  
         StringFormat strfmt = new StringFormat();
         strfmt.Alignment = strfmt.LineAlignment = StringAlignment.Center;
  
         grfx.DrawString(strTime, font, new SolidBrush(ForeColor), 
                         ClientRectangle, strfmt);
    }

}


 </source>


Timer.Tick

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class CloseInFive: Form {

    public static void Main()
    {
         Application.Run(new CloseInFive());
    }
    public CloseInFive()
    {
         Text = "Closing in Five Minutes";
  
         Timer timer    = new Timer();
         timer.Interval = 5 * 60 * 1000;
         timer.Tick    += new EventHandler(TimerOnTick);
         timer.Enabled  = true;
    }
    void TimerOnTick(object obj, EventArgs ea)
    {
         Timer timer = (Timer) obj;
  
         timer.Stop();
         timer.Tick -= new EventHandler(TimerOnTick);
  
         Close();          
    }

}


 </source>