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