本文整理汇总了C#中System.Threading.TimerCallback代理的典型用法代码示例。如果您正苦于以下问题:C# TimerCallback代理的具体用法?C# TimerCallback怎么用?C# TimerCallback使用的例子?那么恭喜您, 这里精选的代理代码示例或许可以为您提供帮助。
TimerCallback代理属于System.Threading命名空间,在下文中一共展示了TimerCallback代理的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: 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();
}
}
}
开发者ID:.NET开发者,项目名称:System.Threading,代码行数:60,代码来源:TimerCallback 输出:
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.
示例2: 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.
}
}
开发者ID:C#程序员,项目名称:System.Threading,代码行数:18,代码来源:TimerCallback
注:本文中的System.Threading.TimerCallback代理示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论