一.定时器 (可以想到Time)
1.ThreadPool的定时器功能:
1 | ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(true), new WaitOrTimerCallback((obj, b) => |
RegisterWaitForSingleObject():
1.(new AutoResetEvent(true):两个线程之间进行信号发送,当true无需等待,当为false,会等待1秒
False:
True:
2.new WaitOrTimerCallback():回调函数
3.”hello word”:传递参数
4.1000:定时器执行的间隔(单位毫秒)
5.false:是否仅执行一次
6.debug执行的效果如下:
2.Timer
有很多地方都有Timer:
- System.Threading
- System.Timer
- System.Windows.Form
- System.Web.UI
1 | Timer timer = new Timer(new TimerCallback((obj) => |
1.new TimerCallback();回调函数
2.“hello word”:传递参数
3.1000:延迟执行的时间【单位毫秒】
4.1000:线程执行的时间间隔
Timer首先是用ThreadPool.UnsafeQueueUserWorkItem(waitCallback, timer);来完成定时功能。
三:实战开发中,基本上不会用Timer来处理问题
功能太少。
比如,每天早上8点启动一个线程,逻辑太多计算时间,开销大,费时费力。