码迷,mamicode.com
首页 > Windows程序 > 详细

C#-Timer重入

时间:2020-07-10 00:36:49      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:ram   net   ros   变量   ref   lib   sys   zh-cn   obj   

C#-Timer重入

July 9, 2020 11:30 PM

1、使用lock(Object)的方法来防止重入,表示一个Timer处理正在执行,下一个Timer发生的时候发现上一个没有执行完就等待执行,适用重入很少出现的场景

2、设置一个标志,表示一个Timer处理正在执行,下一个Timer发生的时候发现上一个没有执行完就放弃(注意这里是放弃,而不是等待哦,看看执行结果就明白啥意思了)执行,适用重入经常出现的场景。

3、在多线程下给inTimer赋值不够安全,Interlocked.Exchange提供了一种轻量级的线程安全的给对象赋值的方法(感觉比较高上大,也是比较推荐的一种方法),执行结果与方法2一样,也是放弃执行。

Interlocked.Exchange Method

定义

命名空间:
System.Threading

Assemblies:
System.Threading.dll, mscorlib.dll, netstandard.dll
以原子操作的形式将变量设置为指定的值。

C#-Timer重入

标签:ram   net   ros   变量   ref   lib   sys   zh-cn   obj   

原文地址:https://www.cnblogs.com/yongchao/p/13276930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!