1
我有一个项目,我通过使用多个线程生成数据并将其编号(1 - 500),并将其放置在标签内,然后放入一个网格内,然后放入网格内WrapPanel。VB.NET按儿童数据排序WrapPanel
问题。 线程中的一些数据在其他线程之前完成。所以我的包装面板得到的数字如 3 1 5 6 10 2 4 7 8 9.我想要在所有线程完成后对经纱面板进行排序,使其看起来像1 2 3 4 5 6 7 8 9 10
Private Sub StartSearch_MouseLeftButtonUp
Dim t As New Thread(AddressOf SearchBegin)
t.Start(Data)
End Sub
Sub SearchBegin(Data)
Dim Max = 10
Dim Count = 1
While Count < Max
Dim t As New Thread(AddressOf Check)
t.Start(Data)
count += 1
End While
End Sub
Sub Check(Data)
'things happen here
Dim display As New Action(Of Object)(AddressOf Progress)
WrapPanel1.Dispatcher.BeginInvoke(display, Data)
End Sub
Sub Progress(Data)
Dim g As New Grid
'Pretty Up Grid
Dim l As New Label
'Pretty Up Label
l.Content = Data.tostring
g.Children.Add(l)
WrapPanel1.Children.Add(g)
End Sub
我注意到这个Threading.Barrier是为框架4.5,并不适用于3.5。我也试图尽快显示数据。但是,这个答案确实有效,所以不要把它标为正确。非常感谢你的帮助 – ArcSet
4.0也支持。顺便说一句,既然你希望他们被排序,并且在所有任务完成之前都不能确定结果,我想,除了等待所有任务之外别无他途。 – theGD