如何防止你的UI出现了假死吗?

简介: 如果应用程序在UI线程上执行非UI线程的耗时处理时,会使应用程序界面的运行显得缓慢而迟钝,有时会出现应用程序“UI界面假死”的现象,这也会引起用户的不满。 .NET的多线程技术将耗时操作从UI线程中分离到另外一个工作线程中,可以有效的提高应用程序的响应能力,而采用异步委托调用方法实现多线程的管理可以使得程序结构清晰,编程简单。
如果应用程序在UI线程上执行非UI线程的耗时处理时,会使应用程序界面的运行显得缓慢而迟钝,有时会出现应用程序“UI界面假死”的现象,这也会引起用户的不满。
 .NET的多线程技术将耗时操作从UI线程中分离到另外一个工作线程中,可以有效的提高应用程序的响应能力,而采用 异步委托调用方法实现多线程的管理可以使得程序结构清晰,编程简单。
 
我们要明确,为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。

 

 

这篇博文写的很不错。

http://www.360doc.com/content/10/0706/16/61151_37250247.shtml

http://www.cnblogs.com/shanechow/archive/2010/05/04/1726924.html

http://www.cnblogs.com/shanechow/archive/2010/05/04/1726957.html
http://www.cnblogs.com/shanechow/archive/2010/05/04/1726934.html

 

 

  代码下载

 

目录
相关文章
|
前端开发 Android开发
Electron 中 webview 如何与主进程渲染进程进行事件监听通信
Electron 中 webview 如何与主进程渲染进程进行事件监听通信
|
Dart 开发者
【Flutter】Flutter 应用生命周期 ( 前台状态 resumed | 后台状态 paused | 非活动状态 inactive | 组件分离状态 detached )(二)
【Flutter】Flutter 应用生命周期 ( 前台状态 resumed | 后台状态 paused | 非活动状态 inactive | 组件分离状态 detached )(二)
408 0
【Flutter】Flutter 应用生命周期 ( 前台状态 resumed | 后台状态 paused | 非活动状态 inactive | 组件分离状态 detached )(二)
为什么有时候在子线程更新UI没报错?
为什么有时候在子线程更新UI没报错?
151 0
为什么有时候在子线程更新UI没报错?
|
JSON 小程序 数据格式
小程序下拉刷新没有响应
小程序下拉刷新没有响应
294 0
【Flutter】Flutter 应用生命周期 ( 前台状态 resumed | 后台状态 paused | 非活动状态 inactive | 组件分离状态 detached )(一)
【Flutter】Flutter 应用生命周期 ( 前台状态 resumed | 后台状态 paused | 非活动状态 inactive | 组件分离状态 detached )(一)
328 0
|
安全
Win10任务栏假死问题解决方案
问题描述 登录Win10后,任务栏上Win10自带的系统服务(‘开始’菜单,Cortana,系统通知等)点击之后均无反应,其他应用软件均可正常运行。 查了一下,这是Win10其中一项版本更新所带来的bug。
3470 0