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多线程实现线程计时器】相关文章:
2010年咨询工程师《项目决策分析与评价》辅导练习题(5)02-06
2024上半年江苏小学教师资格考试笔试成绩查询时间及查分入口(4月12日起)02-06
2023年内蒙古包头中考总分多少,各科都是多少分?02-06
2018江西公务员考试时间02-06
中级人力资源专业知识与实务练习题(7)02-06
英语实用写作词汇学习:beat,hit,strike的区别02-06
2024年安徽淮北濉溪县口子实验高级中学诚聘各科优秀教师公告(80人)02-06
2023年12月福建日本语能力测试考试时间、内容、分值比例及试卷结构[12月3日]02-06
电工岗位人员实习报告02-06
