VB.NET system.timers.timer 不停止

SST_X 2019-09-06 01:30:51
大家好!
我用windows.form.timer空间来计时,每隔5秒触发一下getSN sub。但是窗口很卡。我就换成 system.timers.timer 了。但是经常按停止按钮后,仍然不停,还在继续elapsed 事件。看了网上说有多线程,看不懂,请大家帮忙。谢谢!

Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click

With Timer3
'.SynchronizingObject = Me
.AutoReset = False
.Enabled = True
.Interval = 5000
.Start()
End With

End Sub

Private Sub Timer3_Elapsed(sender As Object, e As ElapsedEventArgs) Handles Timer3.Elapsed
Timer3.Enabled = False
getSN(xrayWorkingDir) ‘处理过程sub
Timer3.Interval = 5000
Timer3.Enabled = True
End Sub

Private Sub btnDebug_Click(sender As Object, e As EventArgs) Handles btnStop.Click
Timer3.Stop()
btnStart.Enabled = True
btnStop.Enabled = False
lblStatus.Text = "Stopped"
lblStatus.BackColor = Color.Yellow

End Sub
...全文
770 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
看你还有个btnstart,这是什么鬼?如果定时执行一个sub,用一个定时器就行了啊,load里初始化定时器,设置两个按钮,开始和暂停,开始按钮里就是timer.start,暂停按钮里就是timer.stop。这样就行了啊
SST_X 2019-09-08
  • 打赏
  • 举报
回复
大家早上好。请帮忙看一下怎么来改下代码,谢谢
SST_X 2019-09-06
  • 打赏
  • 举报
回复
还是不行,这个应该是多线程的什么原因在里面。还请大家帮忙。谢谢
SST_X 2019-09-06
  • 打赏
  • 举报
回复
Private Sub Timer3_Elapsed(sender As Object, e As ElapsedEventArgs) Handles Timer3.Elapsed ' Timer3.Enabled = False getSN(xrayWorkingDir) ' Timer3.Enabled = True End Sub 在getSN里增加timer.stop() 和 timer.start() ? 我试试看
ManBOyyy 2019-09-06
  • 打赏
  • 举报
回复
With Timer3
'.SynchronizingObject = Me
.AutoReset = False
.Enabled = True
.Interval = 5000
.Start()
End With
這些定時器設置多少秒,應該放在Load事件,開啟定時器,就是timer.start()關閉 timer.stop()

還有,你可以在這個方法xrayWorkingDir你這個方法第一行,馬上關閉定時器,因為你不知道五秒內能不能執行完畢,所以在xrayWorkingDir這個方法馬上timer.stop(),然後執行完畢timer.start(),,你不要在定時器方法內啟動或停止定時器
SST_X 2019-09-06
  • 打赏
  • 举报
回复
给个建议怎么改呗?谢谢
ManBOyyy 2019-09-06
  • 打赏
  • 举报
回复
你在定時器關了定時器,然後又開了定時器,搞不懂你邏輯
SST_X 2019-09-06
  • 打赏
  • 举报
回复
让elapsed 停止,等sub执行完再开始计时。用windows.form.timer就是可以的。
stherix 2019-09-06
  • 打赏
  • 举报
回复
为什么要在Elapsed里面设置Enabled false和true 还有Interval 设为true又启用了

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧