C#多线程、异步
1.如果数据仅用于展示,或者对数据的获取没有先后要求,可以使用如下线程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | private void AutoUpdate_Loaded( object sender, RoutedEventArgs e) {Thread ThreadUpdate = new Thread(Update);} private void Update() { try { Thread.Sleep(2000); //执行更新 ExcuteUpdate(); Dispatcher.BeginInvoke( new Action( delegate { this .Close(); //执行界面层:关闭窗体 })); } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
2.异步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /// <summary> /// 登录验证 /// </summary> /// <returns></returns> public async Task< bool > LoginVerfication() { bool ret = true ; if (EditCustomSetting == null || EditCustomSetting.LoginUserCode.IsNullOrEmpty() || EditCustomSetting.Password.IsNullOrEmpty()) { await App.Current.MainPage.DisplayAlert( "提示" , "登录名和密码不能为空,请检查!" , "确定" ); return false ; } //获取用户配置 var result = await service.WebApiLogin(EditCustomSetting.LoginUserCode, EditCustomSetting.Password, EditCustomSetting.ClientCode); if (!result.IsSucess) { await Task.Delay(1000); var data = await service.WebApiLogin(EditCustomSetting.LoginUserCode, EditCustomSetting.Password, EditCustomSetting.ClientCode); if (!data.IsSucess) { await App.Current.MainPage.DisplayAlert( "提示" , data.Message, "确定" ); return false ; } } return ret; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!