低成本响应用户输入,Windows Phone能否实现?
来源:广州中睿信息技术有限公司
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 1758
  下面告诉大家如何优化程序用较低的成本及时响应用户输入。
  
  一个可响应的用户界面是一个基本的应用程序。如果一个软件,它的用户输入设计得不合理,会使用户非常反感。
  
  这里的基本指导是保持尽可能好的UI,这是必须的。然后用线程响应用户输入,所以你的代码中,加入了线程这个概念。除非你更新你的UI元素,否则不应该把执行代码放到界面线程。
  
  我们可以调一个快捷的方法来检查用户是否正在打电话Deployment.Current.Dispatcher.CheckAccess UI()。如果用户正在打电话,那我们必须把更新界面的代码放在一个新的线程执行。
  
  一个简单的方法来移动代码到后台线程ThreadPool.QueueUserWorkItem()。
  
  / /运行的线程.... UI
  
  / /运行在一个背景
  
  thread.ThreadPool.QueueUserWorkItem((o)= > {…ThreadPool }
  这样就会开一个新的线程来执行该任务。QueueUserWorkItem允许你注册代码块将执行下一个可用的ThreadPool后台的线程。注意:使用ThreadPools是常见的,并支持跨平台(包括Windows 8),所以熟悉他们能更好地为你服务于未来的计划中。
  
  当你准备更新你的UI,你需要返回到用户界面线程。你需要调一个叫Deployment.Current.Dispatcher.BeginInvoke()的方法。
  
  / /运行在一个背景
  
  thread.ThreadPool.QueueUserWorkItem((o)= > {…/ /运行在用户界面线程。()= > Deployment.Current.Dispatcher.BeginInvoke {…} }
  如果你尝试在后台更新你的UI,您将会收到一份“无效UnauthorizedAccessException和cross-thread访问。
  
  如果你的应用程序使用了动画,使用多线程能使它们互不相干。。
  
  用多线程也能优化当前界面与另一个界面的导航。
  
  使用多线程,你能提供最好的用户体验,所以我们建议所有程序界面的更新都使用多线程。
 
 
 
 
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。