首页 > 代码库 > WPF异步调用WCF服务
WPF异步调用WCF服务
wpf调用wcf时,第一次访问总耗时到达几秒,影响界面的用户体验,因此在wpf加载界面和加载数据时采用异步加载,即异步访问wcf服务, 由于是否采用异步加载和服务端无关,仅仅由客户端自己根据需要来选择,则我们只需要在客户端(WPF)程序中采用异步的方法。如下:
//1、创建一个异步对象,访问wcf
Func<string, string, List<NodeItem>> GetDataFromWCF = new Func<string, string, List<NodeItem>>(delegate(string _userCode, string _query) { //此处写客户端调用WCF服务的代码
return standardVideoTreeData.LoadData(_userCode, _query); });
//2、执行异步对象的异步方法 BeginInvoke
IAsyncResult result = GetDataFromWCF.BeginInvoke(this.userCode, this.query, (res) => { List<NodeItem> tvsource = myFunc.EndInvoke(res); //3、更新客户端界面数据
SetData(tvsource); }, null); //更新客户端界面数据
private void SetData(List<NodeItem> tvsource) { this.Dispatcher.BeginInvoke(new Action(() => { tree.ItemsSource = tvsource; loading_grid.Visibility = Visibility.Collapsed; })); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。