WPF - DevExpress
"다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다."
캡틴노랑이
2021. 5. 5. 00:57
반응형
"다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다."
아래 메서드를 사용 하면 됨.
Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { To do }));
아래의 경우는, DB에서 데이터를 조회 후에, DevExpress Grid에 바인드 할 때 조회 되는 동안, wait indicator을 보여주려고 하였으나, 보여 줄 수가 없어서, 아래와 같이 함.
private async Task GetBindGrid()
{
wiWait.Visibility = Visibility.Visible;
await Task.Run(() => DoWork());
}
private void DoWork()
{
Thread.Sleep(5000);
Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate {
var data = (new CommonCodeDAO()).Z_UP_PurchaseOrderHeader_T_LIST("");
gcGrid.ItemsSource = data;
wiWait.Visibility = Visibility.Hidden;
}));
}
반응형