Winフォーム/ WPF APIは、非同期正しい姿勢ではなく、カードインタフェースを呼び出します

FlurlとのAPIフレーム。

        公共の 非同期タスク<ApiRespone <QueryDocLoginModel >> QueryDocLogin(文字列 ysdm、文字列のPWD)
        { 
            試み
            { 
                のThread.sleep(5000 );
                VAR responseString = のawait(ConfigurationManager.AppSettings [ " ApiHost " ] + " / HisApi /トリアージ/ QueryDocLogin " 
                    .SetQueryParams(新しい {ysdm = ysdm、PWD = PWD})
                  .GetJsonAsync <ApiRespone <QueryDocLoginModel >> ();
                リターンresponseString; 
            } 
            キャッチ(例外e)
            { 
                YinLong.Framework.Logs.Log4.Debug(" [QueryDocLogin异常]:" + e.ToString())。
                リターン ヌル
            } 
        }

ボタンイベント

        プライベート 非同期 無効 ButtonLogin_OnClick(オブジェクト送信者、RoutedEventArgs e)の
        { 
            アピスのAPI = 新しいアピス();
            文字列のアカウントは= TextBoxAccount.Textを。
            文字列のパス= Password.Password。
            ButtonLogin.Content = " 登录中" 
            ButtonLogin.IsEnabled = ; 
            ApiRespone <QueryDocLoginModel>モデル= nullをawait Task.Run(デリゲート 
             {
                 モデル = apis.QueryDocLogin(アカウント、パス).Result。

             }); 

            もし(!モデル= ヌル
            { 
                Configs.QueryDocLoginModel = モデル。
                この .Dispatcher.Invoke(新しいアクション(デリゲート
                { 
                    新しいメインウィンドウ()ショー(); // 显示主窗口、
                    クローズ(); 
                })); 
            } 
            
            { 
                この .Dispatcher.Invoke(新しいアクション(デリゲート
                {
                    ButtonLogin.Content = " ログイン" ; 
                    ButtonLogin.IsEnabled = trueに; 
                })); 
                MessageBox.Show(" ログインに失敗しました" ); 
            } 
        }

 

おすすめ

転載: www.cnblogs.com/wangyinlon/p/12012469.html