线程不能操作Timer控件?
我在线程中写了Timer1.Enable=True
结果执行无错误,但就是没反应。
看了一下Timer并没有Invoke,应该是不需要托管的吧。
那要怎么做呢?
[解决办法]
如果只是需要实现该方法,可以设置一个全局布尔变量,然后线程改变它的属性。由定时器自身判断状态,终止定时器自己。
否则要保证线程安全,是比较麻烦的事情
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
我保留对非 <散分贴> 蹭分者的厌恶和鄙视...
精通:jīntōn对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
[解决办法]
子线程是不能操作父线程里面的timer的
[解决办法]
线程里可以控制timer啊,试看下面我的代码:
Public Class Form1
Dim WithEvents tmr As System.Timers.Timer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
tmr = New System.Timers.Timer(500)
tmr.Start()
End Sub
Private Sub tmr_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles tmr.Elapsed
Debug.WriteLine(Now.ToString)
End Sub
Private Sub StopTmr()
tmr.Stop()
MsgBox( "Stop ")
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thread As New Threading.Thread(AddressOf StopTmr)
thread.Start()
End Sub
End Class