首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我移动应用程序的窗口时,它的执行速度会变慢

当我移动应用程序的窗口时,它的执行速度会变慢
EN

Stack Overflow用户
提问于 2015-02-18 21:06:59
回答 1查看 58关注 0票数 0

我的问题可能对您来说很愚蠢,但我意识到移动应用程序窗体会使其中的代码运行速度变慢。例如,当我加载一个位图图像并对其应用一些图像编辑算法时,整个过程大约需要22秒才能完成。但是如果我在执行过程中移动表单,它会额外增加3-4秒的运行时间。我能用秒表发现延迟的情况。那么,如果可能的话,我该如何绕过这种行为呢?

EN

回答 1

Stack Overflow用户

发布于 2015-02-18 21:16:02

这只是一个假设,需要您进行调查,因为您没有发布任何代码,因此不可能真正知道发生了什么。

最有可能的是,您将图像的边界移到了屏幕之外。当您再次移动时,窗口引擎将对要重新绘制的矩形执行一些绘制调用。放大时调整大小也会发生同样的情况,但缩小窗口时则不会。

如果是这种情况,那么只要你不覆盖/不覆盖图像的区域,你就不会遇到任何额外的绘制调用。

所以这不是一个答案,但在您的位置上,我会覆盖Paint()方法,并记录进行了多少额外的调用。基于此,我会寻找一种解决方案,比如像这样抑制这些调用:

代码语言:javascript
复制
public override void Paint()
{
    if (algorithmRunning)
    {
        return; // suppress any further computations
    }

    base.Paint(); // do actual redraws
}

这段代码只是一个例子,你必须根据MSDN文档来修复它。

您不应该做的是只挂接到OnPaint()事件中,因为这样您仍然可以调用实际的Paint()方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28584408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档