- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的应用程序,它读取数据库,然后经过一些操作将结果写入另一个数据库。
第一行代码使用给用户的消息和屏幕日志更新 ui,然后全部包装在带有 using 和其他 try/catch 的 try/catch 构造中。
message.AppendText("** Message for the user that appear only after the try block's execution **\n");
message.ScrollToEnd();
try
{
using(SqlConnection...)
{
business code
}
}
catch
{
bbbb...
}
最终它可以工作,但是 ui 仅在完成所有操作后才会更新。我可以理解为什么 try 里面的内容必须等待结束,但是为什么第一行直到连续 block 结束才影响 ui?
如何创建响应更快的用户界面?我首先尝试为任何连接创建一个线程(一个超时时间为 5 秒),另一个用于业务代码。好吧,这有点矫枉过正,但正在尝试。我在共享线程之间的连接以及与主窗口的用户界面交互时遇到了很多问题,因此放弃了这个想法并按照上面的描述重写了所有内容。
最佳答案
这里的人们建议创建一个响应式用户界面。这是做到这一点的一种方法。在代码文件的顶部添加:
using System.Threading;
将所有需要很长时间的内容移至新方法:
public void LoadStuff()
{
// Do some stuff that takes a while here
}
用以下代码替换原来的内容:
Thread callThread = new Thread(new ThreadStart(LoadStuff));
callThread.Start();
现在,每当您需要从 LoadStuff 更新 UI 时,您都必须使用此代码封装它(包围它)。原因是只有创建 UI 的线程才能修改它。因此,我们必须告诉新线程引用旧线程来执行代码。因此,在 LoadStuff 内部,计算完一堆数据后,要更新 UI,请使用以下命令:
this.Dispatcher.Invoke(new Action(() =>
{
// Code to update UI here
}));
就像其他人所建议的那样,还有其他方法可以提高 UI 速度,而且我并不是第一个建议使用不同线程进行计算的人。但我只是想向您展示一种方法。
关于c# - 如何避免用户界面卡顿/滞后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458479/
我在 Java Swing 中移动 block 时遇到卡顿问题。 下面的代码将显示该问题。运行时,我希望盒子移动平稳,没有任何卡顿。 Swing中有没有办法实现这一点?或者我应该继续使用 JavaFX
在我的应用程序中,我在主要 Activity 中实现了滑动菜单抽屉。菜单的设计是自定义的,单击菜单中的列表项会打开一个 fragment 。 private class SlideMenuClickL
我尝试制作ImageView 的扩展布局动画和平移 动画,但我同时启动它们时它们看起来有点滞后。我在真实设备 Moto X(2013) 上对其进行了测试。不确定更强大的设备,因为默认情况下我所有的模拟
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
首先,让我澄清一些事情: 我的显示器频率为 60 赫兹 我将我的 FPS 限制在 60,它似乎工作正常 我激活了双缓冲标志 我自己制作了一个后台缓冲区,并确保绘制到它,然后再绘制到屏幕 这个问题在全屏
我在以下测试页面上使用 Flexslider(旧版本 1.0,支持 jquery 1.4.8):http://www.showstyle.lu/service/startv2/ 如您所见, slide
我有一项服务可以在 AysncTask 的 doInBackground() 方法中下载一个大文件: data = new byte[8192]; output = new FileOutputStr
我有一个动画师,infinite_rotation,定义为: 当我不再需要它的时间(时间不确定)到来时,我调用 infinite_animator.cancel()。然后在其布局容器上播
向元素添加过渡并更改宽度和/或高度以及 -webkit-transform:translate3d 时,过渡动画会断断续续。它似乎首先为宽度/高度变化设置动画,并对其进行部分平移,然后捕捉到最终平移位
当 AVSpeechSynthesizer 正在说一个句子时,UI 发生变化(例如 ViewController 被推送,UIButton的标题已更改,...),AVSpeechSynthesizer
在 Firefox 11 中,我在使用 HTML5 的 Canvas 和翻译的一些基本动画中遇到偶尔的抖动/犹豫/卡顿。 请看下面的例子... http://jsfiddle.net/ACRdx/ 上
问题 我正在尝试让 Canvas 上的图像从左向右平滑移动。它在 Chrome/Safari 上还不错(仍然有点卡顿),但在多台机器上的 Firefox 中有明显的卡顿(在 Windows 和 Mac
我正在使用 Ariel Flesler's ScrollTo script在 this page .我在页面底部有两个链接,可以滚动到页面顶部(其中一个还可以打开联系表格)。我注意到在滚动开始时页面顶
我一直在尝试创建一个充满卡片 View 的回收站 View 。目前,我正在使用来自 this tutorial 的 Recycler View并加载 14 张不同的图像。专业品质的图像大小范围从 13
我创建了一个带有自定义单元格的 UItableview。这些单元格有两个 UILabel 和一个在后台线程上调用图像的 ImageView 。这些单元首先加载一些占位符数据,以防 API 调用时间较长
用例 我有 68 个钢琴样本,每个样本大约。 174 kB,Ogg 数据,Vorbis 音频,立体声,s16,44100 Hz,352 kb/s,4 秒。 我需要同时演奏它们的不同组合(音乐术语:和弦
喂, https://jsfiddle.net/jbwq6y87/7/ #box { width: 500px; height: 500px; transition: 0.5s; ov
这是一个演示: http://nushuttles.com/chords/player.html 顶部的方 block 是用 Flash 渲染的,下面的方 block 是用 Javascript 制作
我有一个 RecyclerView 这是一个垂直滚动的项目列表。每个列表项在 Lite Mode 中包含一个 Google Maps V2 MapView .我正在利用这个返回位图而不是完整 map
在我的应用程序中,一旦用户进入它,我在仪表板上有太多动画只发生一次 - 即当用户第一次进入应用程序时 - 我在 viewDidAppear 中以这种方式执行动画,调用 upperViewAnimati
我是一名优秀的程序员,十分优秀!