0

我正在使用 PostInvalidate(40, Rect); 意味着在 40 毫秒后它应该再次调用 OnDraw(),但调用 onDraw() 似乎需要超过 40 毫秒。

我应该在计时器或处理程序上使这个无效()。我有必要在 40 毫秒内调用它

有什么建议么

4

1 回答 1

0

从文档中:

导致指定区域的无效在事件循环的后续循环中发生。等待指定的时间。

这意味着系统将等待 40 毫秒,然后在事件循环的后续循环中,它将执行失效。如果您有一个缓慢的事件周期,您将获得对失效的缓慢响应。

这意味着失效生效所需的时间受到循环通过事件循环所需的时间的限制。它永远不会在 40 毫秒内发生。无论 Invalidate() 工作所需的平均时间是多少,它都将花费该时间 + 40 毫秒以上(至少)。

于 2013-07-27T06:10:32.307 回答