我对silverlight 的busyindicator 控制有疑问。我有一个数据网格(datagrid1),其源设置为 wcf 服务(客户端)。当数据网格自行加载时,我想使用silvelright 工具包的busyindicator 控件(bi)。
但是当我使用“ThreadPool”时,我有一个“无效的跨线程访问”。
Sub LoadGrid()
Dim caisse As Integer = ddl_caisse.SelectedValue
Dim env As Integer = ddl_env.SelectedValue
bi.IsBusy = True
ThreadPool.QueueUserWorkItem(Sub(state)
AddHandler client.Get_PosteSPTCompleted, AddressOf client_Get_PosteSPTCompleted
client.Get_PosteSPTAsync(caisse, env)
Dispatcher.BeginInvoke(Sub()
bi.IsBusy = False
End Sub)
End Sub)
End Sub
Private Sub client_Get_PosteSPTCompleted(sender As Object, e As ServiceReference1.Get_PosteSPTCompletedEventArgs)
DataGrid1.ItemsSource = e.Result ' Here, Invalid cross thread access
End Sub
我知道“新线程”中不存在数据网格控件,但是我必须如何避免这个错误?
谢谢你。
威廉