zoukankan      html  css  js  c++  java
  • 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; })); }
  • 相关阅读:
    22.抽象类
    21.多态
    20.修饰符
    19.继承
    day46---MySQL数据库进阶(一)
    day45---mysql数据库基本操作初阶(二)
    day45---计算机安全项目(癞蛤蟆)
    day44---数据库初阶(一)
    day44---windows下安装MySQL-5.6.37
    day42---几种network IO模型
  • 原文地址:https://www.cnblogs.com/simpleZone/p/3783534.html
Copyright © 2011-2022 走看看