大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可能原因:timer不是由当前线程创建的。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了东平免费建站欢迎大家使用!
解决方案:在线程中实例化一个timer,然后触发,可以去试一下;或者通过委托,调用timer。
先不用线程试一下吧。
我写了一个博文,你看看,上面代码讲的很清楚。我就不多讲了
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Timer1.Interval = 2000(两秒)
Me.Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
MsgBox("Hello World")
End Sub
在界面拖一个Button和Timer试试这个效果,在界面双击Timer控件,代码应该很明白了
多线程是用于处理复杂项目的
打个比方
你的主程序线程A中有个循环,由于代码是一行行走的,所以循环结束前下面的代码无法运行,而此时主界面的反应就类似卡死的样子,你点击按钮也没有反应,因为主线程在忙着循环呢,所以对按钮的事件代码要等待了,如果要避免这种情况,就要用到多线程,另开一个新线程专门用来执行循环代码,主界面就不会卡死了,只要在循环结束后将结果传回主线程调用就可以了,再复杂点要涉及到委托,控制了
按你的要求其实你的代码用不到多线程,只要把sleep放到两段代码中间就可以了。
新线程结束用thread.abort()