本文整理汇总了C#中System.Threading.TimerCallback代理的典型用法代码示例。如果您正苦于以下问题:C# TimerCallback代理的具体用法?C# TimerCallback怎么用?C# TimerCallback使用的例子?那么, 这里精选的代理代码示例或许可以为您提供帮助。
TimerCallback代理属于System.Threading命名空间,在下文中一共展示了TimerCallback代理的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: new TimerCallback
//引入命名空间
using System;
using System.Threading;
class TimePrinter {
static void PrintTime(object state) {
Console.WriteLine("Time is: {0}, Param is: {1}", DateTime.Now.ToLongTimeString(), state.ToString());
}
static void Main(string[] args) {
TimerCallback timeCB = new TimerCallback(PrintTime);
Timer t = new Timer(
timeCB, // The TimerCallback delegate type.
"Hi", // Any info to pass into the called method.
0, // Amount of time to wait before starting.
1000); // Interval of time between calls.
}
}
示例2: StatusChecker
//引入命名空间
using System;
using System.Threading;
class TimerExample
{
static void Main()
{
// Create an AutoResetEvent to signal the timeout threshold in the
// timer callback has been reached.
var autoEvent = new AutoResetEvent(false);
var statusChecker = new StatusChecker(10);
// Create a timer that invokes CheckStatus after one second,
// and every 1/4 second thereafter.
Console.WriteLine("{0:h:mm:ss.fff} Creating timer.\n",
DateTime.Now);
var stateTimer = new Timer(statusChecker.CheckStatus,
autoEvent, 1000, 250);
// When autoEvent signals, change the period to every half second.
autoEvent.WaitOne();
stateTimer.Change(0, 500);
Console.WriteLine("\nChanging period to .5 seconds.\n");
// When autoEvent signals the second time, dispose of the timer.
autoEvent.WaitOne();
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 the waiting thread.
invokeCount = 0;
autoEvent.Set();
}
}
}
输出:
11:59:54.202 Creating timer. 11:59:55.217 Checking status 1. 11:59:55.466 Checking status 2. 11:59:55.716 Checking status 3. 11:59:55.968 Checking status 4. 11:59:56.218 Checking status 5. 11:59:56.470 Checking status 6. 11:59:56.722 Checking status 7. 11:59:56.972 Checking status 8. 11:59:57.223 Checking status 9. 11:59:57.473 Checking status 10. Changing period to .5 seconds. 11:59:57.474 Checking status 1. 11:59:57.976 Checking status 2. 11:59:58.476 Checking status 3. 11:59:58.977 Checking status 4. 11:59:59.477 Checking status 5. 11:59:59.977 Checking status 6. 12:00:00.478 Checking status 7. 12:00:00.980 Checking status 8. 12:00:01.481 Checking status 9. 12:00:01.981 Checking status 10. Destroying timer.