【发布时间】:2017-03-16 06:23:33
【问题描述】:
在 VB.NET 或 C# 中,Windows 窗体应用程序可以添加一个计时器控制器以按计划方式运行任务。但是定时器的内部实现是什么?它是否为每个计时器使用单独的线程?还是线程池?还是其他并发编程范式?
编辑
另外,我想知道定时器控制器是否满足如下所述的并发安全属性?
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
i = i + 1 //Line 1
//Line 2, some code is here will takes some cpu time
i = i - 1 //Line 3
//Line 4, some code is here; takes another cpu time
End Sub
我们能否保证公共变量 i 始终具有值 1 或 0?
【问题讨论】:
-
定时器有很多种,你指的是哪一种?为什么不检查reference code?
-
@LeiYang 将此作为答案发布。这是我所期望的(参考代码)。
-
如果您想查看实现,请转到the source。