zoukankan      html  css  js  c++  java
  • winform/wpf调用异步api正确姿势,界面不卡

    api用的框架Flurl;

            public async Task<ApiRespone<QueryDocLoginModel>> QueryDocLogin(string ysdm, string pwd)
            {
                try
                {
                    Thread.Sleep(5000);
                    var responseString = await (ConfigurationManager.AppSettings["ApiHost"] + "/HisApi/Triage/QueryDocLogin")
                        .SetQueryParams(new { ysdm = ysdm, pwd = pwd })
                      .GetJsonAsync<ApiRespone<QueryDocLoginModel>>();
                    return responseString;
                }
                catch (Exception e)
                {
                    YinLong.Framework.Logs.Log4.Debug("[QueryDocLogin异常]:" + e.ToString());
                    return null;
                }
            }

    按钮事件

            private async void ButtonLogin_OnClick(object sender, RoutedEventArgs e)
            {
                Apis apis = new Apis();
                string account = TextBoxAccount.Text;
                string pass = Password.Password;
                ButtonLogin.Content = "登录中";
                ButtonLogin.IsEnabled = false;
                ApiRespone<QueryDocLoginModel> model = null;
                await Task.Run(delegate
                 {
                     model = apis.QueryDocLogin(account, pass).Result;
    
                 });
    
                if (model != null)
                {
                    Configs.QueryDocLoginModel = model;
                    this.Dispatcher.Invoke(new Action(delegate
                    {
                        new MainWindow().Show(); // 显示主窗口;
                        Close();
                    }));
                }
                else
                {
                    this.Dispatcher.Invoke(new Action(delegate
                    {
                        ButtonLogin.Content = "登录";
                        ButtonLogin.IsEnabled = true;
                    }));
                    MessageBox.Show("登录失败");
                }
            }
  • 相关阅读:
    第一阶段冲刺——4
    Day 1 测试流程--H模型
    【疑问】待解决
    Zookeeper 入门(一)
    【基础组件1】Flume入门(一)
    埋点测试、埋点接口测试
    单点登录 VS 多点登录
    web系统原理
    测试用例总结篇(一)
    功能测试心得(二)
  • 原文地址:https://www.cnblogs.com/wangyinlon/p/12012469.html
Copyright © 2011-2022 走看看