ClassStateObjClass'用于保留调用TimerTask所需的参数
PublicSomeValueAsInteger
PublicTimerReferenceAsSystem.Threading.Timer
PublicTimerCanceledAsBooleanEndClassSubRunTimer()
DimStateObjAsNewStateObjClass()
StateObj.TimerCanceled=False
StateObj.SomeValue=1
DimTimerDelegateAsNewThreading.TimerCallback(AddressOfTimerTask) '创建每隔2秒钟调用过程的计时器。
'注意:这里没有Start方法;创建实例之后, '计时器就开始运行。
DimTimerItemAsNewSystem.Threading.Timer(TimerDelegate,StateObj,_2000,2000)
StateObj.TimerReference=TimerItem '为Dispose保存一个引用。
WhileStateObj.SomeValue<10'运行10个循环。
System.Threading.Thread.Sleep(1000) '等待1秒钟。
EndWhile
StateObj.TimerCanceled=True '请求计时器对象的Dispose。
End
SubSubTimerTask(ByValStateObjAsObject)
DimStateAsStateObjClass=CType(StateObj,StateObjClass)
DimxAsInteger '使用Interlocked类递增计数器变量。
System.Threading.Interlocked.Increment(State.SomeValue)
Debug.WriteLine("已启动了新线程"&Now)
IfState.TimerCanceledThen '已请求Dispose。
State.TimerReference.Dispose()
Debug.WriteLine("完成时间"&Now)
End
IfEndSub
当System.Windows.Forms.Timer类不可用时(例如在开发控制台应用程序时),线程计时器特别有用。
本文来自 280文秘网(https://www.it280.com),转载请保留网址和出处
【VB.NET多线程实现线程计时器】相关文章:
中国大地保险公司实习报告05-09
2018国家电网新大纲财会类市场模拟卷多选题(二)05-09
广西壮族自治区财政厅会计继续教育报名登录入口:https://czt.gxzf.gov.cn/kjgl/05-09
汪涵讲述小时候成长经历:鸡毛掸子的故事05-09
2023年广东梅州中考成绩查询时间及查分入口[7月7日起]05-09
儿童舞蹈教程:国标新手上路05-09
2024年江苏中级导游等级考试准考证打印时间及入口(11月18日9:00起)05-09
2020年高级会计师《高级会计实务》知识点:社会融资方式05-09
