InvalidOperationException при втором выполнении фонового работника - PullRequest
0 голосов
/ 03 сентября 2011

Я создаю приложение, используя wpf и vb.net в экспрессе vb2010, и у меня возникла проблема, которая сводит меня с ума.

У меня есть таймер, который запускает фонового работника каждую минуту:

Private Sub timer_Tick() Handles timer.Tick
    If Not bworker.IsBusy Then
        bworker.RunWorkerAsync()
    End If
End Sub

Фоновый работник работает с 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

Затем я использую e.Result для RunWorkerComplete, чтобы добавить XmlElement в источник.Он отлично работает в первый раз, когда я запускаю фонового работника, но когда таймер вызывает его во второй раз, он выдает InvalidOperationException в строке "elemento.InnerText = sometext", почему это так и как я могу это решить?

1 Ответ

0 голосов
/ 05 сентября 2011

Можете ли вы попробовать использовать DispatcherTimer вместо обычного Timer выше?

...