问题描述
我的UI线程有问题,当我尝试将包含2,000,000条记录的BindingList绑定到网格视图时,如果没有冻结UI的任何方法,它会挂起,请帮帮我,或者如何更新该控件中的某些控件UI线程没有冻结?
我的代码:
Private Async Sub Form1_Load(sender As Object,e As EventArgs) Handles MyBase.Load
Await FillPositions()
BindSource()
End Sub
Private Async Sub FillPositions()
Await Execute(Function()
Return ExecuteFillPositions()
End Function)
End Sub
Private Function ExecuteFillPositions()
Positions = New BindingList(Of Order)
For index = 1 To 2000000
Positions.Add(New Order With {
.Id = index,.Comm = index * 0.123,.Price = index * 0.321,.Script = "USD",.Time = Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),.Type = "New",.Value = index * 0.132
})
Next
Console.WriteLine($"Source count: {Positions.Count}")
Return 0
End Function
Private Async Function Execute(Of TResult)(ByVal func As Func(Of TResult)) As Task(Of TResult)
Return Await Task.Factory.StartNew(Function()
Dim result = nothing
Try
result = func()
Catch ex As Exception
Throw New NotImplementedException
End Try
Return result
End Function)
End Function
以下代码导致挂起2-3秒
Private Sub BindSource()
RadGridView1.DataSource = Positions
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)