我正在vb2010 express中使用wpf和vb.net创建一个应用程序,并且遇到一个让我发疯的问题。
我有一个每分钟执行一次后台工作的计时器:
Private Sub timer_Tick() Handles timer.Tick
If Not bworker.IsBusy Then
bworker.RunWorkerAsync()
End If
End Sub
backgroundworker正在使用xmlelement和xmldataprovider:
Private Sub bworker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bworker.DoWork
Dim source As XmlDataProvider = Application.Current.Resources("r1")
Dim sometext As String = "something"
Dim elemento As XmlElement = source.Document.CreateElement("elemento")
elemento.InnerText = sometext
e.Result = elemento
End Sub
然后我在RunWorkerComplete上使用e.Result将XmlElement添加到源代码。它在我第一次执行backgroundworker时工作正常,但是当计时器第二次调用它时,它会在“elemento.InnerText = sometext”行中抛出InvalidOperationException,为什么会这样,我该如何解决?
答案 0 :(得分:0)
您可以尝试使用DispatcherTimer
代替上面的普通Timer
吗?