首页 > 代码库 > Mono 异步加载数据更新主线程
Mono 异步加载数据更新主线程
主要是用 async和 await 调用 RunOnUiThread来更新。
调用函数:
//异步加载数据开始doInBackground ();//异步加载数据开始endprotected async void doInBackground (){ var result = await Task.Factory.StartNew((Func<string>)onSuccessfulLogin); if (result=="") { await Task.Factory.StartNew (() => { RunOnUiThread (delegate() { //跳转到主页面 Intent intent = new Intent(); intent.SetClass(this, typeof(Main)); StartActivity(intent); Finish (); }); }); }} protected string onSuccessfulLogin () { try { Thread.Sleep (2000); Hashtable pars = new Hashtable(); pars.Add("UserName",mAccount); pars.Add("Password", mPassword); UserInfoDao userinfodao = new UserInfoDao (); userinfomodel = userinfodao.getWebservice (pars); //判断登录 if (userinfomodel != null) { if (userinfomodel.UserID > 0) { //保持登录的状态 bgein ISharedPreferences shared = GetSharedPreferences("UserInfo", FileCreationMode.Private); string value = http://www.mamicode.com/shared.GetString("UserInfo", ""); value =userinfomodel.UserID.ToString().Trim()+"|"+userinfomodel.UserName+"|"+userinfomodel.Token ; ISharedPreferencesEditor editor = shared.Edit(); editor.PutString("UserInfo",value); editor.Commit(); //保持登录的状态 end } } else { return "用户名或密码错误!"; } } catch (Exception e) { return e.ToString(); } return ""; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。