Silverlightのbusyindicatorコントロールに問題があります。ソースがwcfサービス(クライアント)に設定されたdatagrid(datagrid1)があります。データグリッドがそれ自体をロードするときに、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
データグリッドコントロールが「新しいスレッド」に存在しないことは知っていますが、このエラーを回避するにはどうすればよいですか?
ありがとうございました。
ウィリアム