zoukankan
html css js c++ java
VSTS2008 学习之路(2):多线程Timer
今天学习一下多线程在网络上看到一个很好的例子,简单而且很好理解。
Code
1
namespace
ThreadTest
2
{
3
using
System;
4
using
System.Threading;
5
class
TimerExampleState
6
{
7
public
int
counter
=
0
;
8
public
Timer tmr;
9
}
10
class
App
11
{
12
public
static
void
Main()
13
{
14
TimerExampleState s
=
new
TimerExampleState();
15
16
//
创建代理对象TimerCallback,该代理将被定时调用
17
TimerCallback timerDelegate
=
new
TimerCallback(CheckStatus);
18
19
//
创建一个时间间隔为1s的定时器
20
Timer timer
=
new
Timer(timerDelegate, s,
1000
,
1000
);
//
在超过 dueTime 后及此后每隔 period 时间间隔,都会调用一次由 callback 参数指定的委托。
21
s.tmr
=
timer;
22
23
//
主线程停下来等待Timer对象的终止
24
while
(s.tmr
!=
null
)
25
{
26
Thread.Sleep(
0
);
27
}
28
Console.WriteLine(
"
Timer example done.
"
);
29
Console.ReadLine();
30
}
31
//
file:
//
下面是被定时调用的方法
32
33
static
void
CheckStatus(Object state)
34
{
35
TimerExampleState s
=
(TimerExampleState)state;
36
s.counter
++
;
37
Console.WriteLine(
"
{0} Checking Status {1}.
"
, DateTime.Now.TimeOfDay, s.counter);
38
if
(s.counter
==
5
)
39
{
40
file:
//
使用Change方法改变了时间间隔
41
(s.tmr).Change(
10000
,
2000
);
42
Console.WriteLine(
"
changed
"
);
43
}
44
if
(s.counter
==
10
)
45
{
46
Console.WriteLine(
"
disposing of timer
"
);
47
s.tmr.Dispose();
48
s.tmr
=
null
;
49
}
50
}
51
}
52
}
53
查看全文
相关阅读:
GOF23设计模式汇总
获取表单提交MVC错误信息
Spring.Net
简单工厂、工厂方法和抽象工厂
Json和JsonP
mysql8无法用navicat连接(mysql8加密方式的坑)
(4.16)mysql备份还原——物理备份之XtraBackup实践
mysql如何下载历史版本?
如何测试端口通不通(四种方法)
linux移动复制删除命令
原文地址:https://www.cnblogs.com/mishy/p/1453210.html
最新文章
php 获取文件加的名称
php 如何获取一个json文件
bootstrap input 加了 disabled 后台竟然接受不到值
linux 上拷贝文件到windows 上 文件出现锁的文件
yum 无法安装mysql
关于JQ checkbox选择的问题
【Oracle学习笔记-4】内连接和外连接的区别
python 数据类型详解(转)
Python 常见文件操作的函数示例(转)
Python 字符串处理(转)
热门文章
Oracle 用户解锁
NodeJS-003-自动刷新
NodeJS-002-Expres启动
NodeJS-001-Nodejs学习文档整理(转-出自http://www.cnblogs.com/xucheng)
Python 高斯坐标转经纬度算法
UML用例图总结
JQuery
WCF系列
Hadoop书签
你可能并不需要一个 CTO
Copyright © 2011-2022 走看看