0
我正在製作一個程序,該程序檢查數據集中是否存在數據問題,如果發現問題,則需要將問題寫入列表框。 由於這是一個非常漫長的過程,我使用異步並等待關鍵字,以便用戶可以繼續使用其他Windows。task.run中的異步更新列表框
在按鈕處理程序,我寫了下面的代碼:
Private Async Sub BtnIniciar_Click(sender As Object, e As EventArgs) Handles BtnIniciar.Click
(...)
Await ValidaFracoesRepetidas()
(...)
End Sub
在子,我想做到以下幾點:
Private Async Function ValidaFracoesRepetidas() As Task
Await Task.Run(Sub()
(...)
ListProblems.Items.Add("the building " & edf.EdificioId & " has repeated rooms " & frac(i) & " in floor " & patual)
(...)
End Sub)
End Function
但一旦到達ListProblems.Items 。添加程序會引發異常。 我想知道是否有方法從另一個線程寫入UI中的列表框。如果不能,我可以返回一個Task(Of List(Of String)),然後在ui線程中使用For Each將值寫入ListBox?
注意:ListProblems是UI(Windows窗體)中列表框的名稱,如果您需要顯示更多代碼,請詢問我將給您更多。
非常感謝您的關注和遺憾,因爲我在多線程一個很初級,
最好的問候,
非常感謝!你解決了我的問題。 – Digmoons 2014-09-03 14:10:54