【发布时间】:2012-03-09 00:05:22
【问题描述】:
我最近将我的代码从使用 windows.forms.timer 切换到了 systems.timer.timer,这导致了多线程错误。我正在使用计时器来触发一个事件,因此多线程应该不是问题。为了提供更多详细信息,我在以下位置实现了计时器: 我在班级中名列前茅:
Private Shared timr1sec As System.Timers.Timer
程序加载时(Private Sub Test_load):
timr1sec = New System.Timers.Timer(1000)
AddHandler timr1sec.Elapsed, AddressOf OnTimedEvent
在 OnTimedEvent 中,我调用了几个子例程,并使用 ListView 对象将一些数据写入屏幕。 VisualExpress 在这段代码的最后一行抛出多线程错误,在 OnTimedEvent 中
Dim itm As New ListViewItem(str(0))
itm.SubItems.Add(str(1))
itm.SubItems.Add(str(2))
itm.SubItems.Add(str(3))
itm.SubItems.Add(str(4))
itm.SubItems.Add(str(5))
ListView1.Items.AddRange(New ListViewItem() {itm})
知道这个新计时器是什么导致 VisualExpress 说我在多线程吗?
【问题讨论】:
标签: vb.net multithreading