.net 重新触发VB子例程,如何序列化执行?
抱歉,如果这是一个新手问题.net 重新触发VB子例程,如何序列化执行?,.net,vb.net,.net,Vb.net,抱歉,如果这是一个新手问题 我有一个由计时器触发的VB.NET子例程。我发现,有时,如果例程运行很长时间,当它仍在运行时,会再次触发例程并产生不可预测的结果。这正常吗?例程的每个副本都在自己的线程中运行吗?有没有办法序列化例程?现在我使用一个布尔值,我在输入时将其设置为True,在输入时将其设置为False,这样我就可以在输入例程时检查例程是否正在运行,但我认为可能会有更优雅的功能。在开始执行子例程时停止计时器,然后在退出时再次启动它 您可能应该包括错误处理,以便计时器即使在意外退出时也会重新启
我有一个由计时器触发的VB.NET子例程。我发现,有时,如果例程运行很长时间,当它仍在运行时,会再次触发例程并产生不可预测的结果。这正常吗?例程的每个副本都在自己的线程中运行吗?有没有办法序列化例程?现在我使用一个布尔值,我在输入时将其设置为True,在输入时将其设置为False,这样我就可以在输入例程时检查例程是否正在运行,但我认为可能会有更优雅的功能。在开始执行子例程时停止计时器,然后在退出时再次启动它
您可能应该包括错误处理,以便计时器即使在意外退出时也会重新启动 开始执行子程序时停止计时器,退出时再次启动
您可能应该包括错误处理,以便计时器即使在意外退出时也会重新启动 A
System.Windows.Forms.Timer
是单线程的,所以我很惊讶Tick
事件在运行时被调用(根据定义,UI线程应该被占用,并且无法进行调用)
我可以看到滴答声
事件排队,并按顺序发生
System.Timers.Timer
是多线程的,可能具有您描述的情况。(如果您正在使用其中一个,切换到System.Windows.Forms.Timer
至少可以防止事件相互中断)aSystem.Windows.Forms.Timer
是单线程的,所以我很惊讶勾选事件在运行时被调用(根据定义,UI线程应该被占用,并且无法进行调用)
我可以看到滴答声
事件排队,并按顺序发生
System.Timers.Timer
是多线程的,可能具有您描述的情况。(如果您使用其中一种,切换到System.Windows.Forms.Timer
至少可以防止事件相互中断)这是System.Windows.Forms.Timer还是System.Timers.Timer?这是System.Windows.Forms.Timer还是System.Timers.Timer?