2010-05-19 3 views
1

Каким будет пространство имен для TimerEvent?Пространство имен для таймераEvent

+2

Что вы подразумеваете под TimerEvent? Это ваш собственный тип класса? Потому что такого класса нет в .NET framework afaik. – pyrocumulus

+0

Это мой класс класс ClockTimer { общественное мероприятие TimerEvent Timer; public void Start() { for (int i = 0; i <5; i ++) { Timer = null; Thread.Sleep (1000); } } ClockTimer clockTimer = новый ClockTimer(); clockTimer.Timer + = новый TimerEvent (OnClockTick); clockTimer.Start(); – user344068

+0

В соответствии с http://msdn.microsoft.com/en-us/library/system.timers.aspx существует только одна вещь под названием '\t ElapsedEventHandler', которая используется с таймерами. Все классы, которые вы используете в этом фрагменте кода, не являются частью среды .NET. – pyrocumulus

ответ

0

Если вы ищете класс .NET Timer и генерируемые им события, вы можете использовать пространство имен System.Timers.

Существует также класс Timer в System.Windows.Forms, но это однопоточный и менее точный, чем указано выше.

EDIT: Как уже упоминалось в @GenericTypeTea, это не существующая часть платформы .NET, поэтому вам нужно либо создать новый делегат, либо использовать существующее событие, например Timer.Tick.

+0

Я уже использовал его, но потом также просил пространство имен для timerEvent – user344068

+1

Но я хочу использовать его в режиме веб-разработки. – user344068

2

Вы, кажется, скопировали код из этого ebook (см. Стр. 183 и далее). В принципе, TimerEvent является делегатом, созданным автором для своего класса ClockTimer.

TimerEvent не является частью каркаса .Net. Вы можете создать свой собственный TimerEvent делегата следующим образом:

public event TimerEvent Timer; 
public delegate void TimerEvent(object sender, EventArgs e); 
+0

+1 для находчивости, находящей электронную книгу. – pyrocumulus

0
System.Threading.Timer 

Предоставляет механизм для выполнения метода в заданные интервалы

MSDN Статья

Из статьи

using System; 
using System.Threading; 

class TimerExample 
{ 
    static void Main() 
    { 
     AutoResetEvent autoEvent  = new AutoResetEvent(false); 
     StatusChecker statusChecker = new StatusChecker(10); 

     // Create an inferred delegate that invokes methods for the timer. 
     TimerCallback tcb = statusChecker.CheckStatus; 

     // 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(tcb, autoEvent, 1000, 250); 

     // When autoEvent signals, change the period to every 
     // 1/2 second. 
     autoEvent.WaitOne(5000, false); 
     stateTimer.Change(0, 500); 
     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 
{ 
    private int invokeCount; 
    private int 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(); 
     } 
    } 
} 
Смежные вопросы