-1

我有一个 WPF 应用程序,它具有带有大型数据绑定的复杂 UI。我正在使用 WCF 异步调用服务器获取数据。从服务器获取数据大约需要 4 秒,对于 XAML 绑定大约需要 6 秒。为了获得用户通知,我给出了一个繁忙的指示器,它将正常运行(进度显示在进度条上),直到数据到达客户端。当我将该结果分配给 XAML 时,它(忙碌指示器)将变得无响应(也是主窗口)。是因为单一的 UI 线程吗?是否可以在 WCF 异步调用内的单独线程(如后台工作人员)中显示繁忙指示器?或者还有其他处理这种情况的好方法吗?

busyIndicator.IsBusy = true;    

ServiceAgentInstance.GetAll((s1, e1) =>    
    {    
        ObservableCollection<Model> collection = e1.Result;   
        busyIndicator.IsBusy = false;   
    });

谢谢

4

1 回答 1

2

听起来您正在 UI 线程上发出 WCF 请求,这应该避免。尝试使用BackgroundWorker发出您的请求,这应该可以释放您的 UI 线程来为繁忙指示器设置动画。

于 2012-04-12T12:49:21.620 回答