我有一个应用程序生成随机数约20秒,并在屏幕上的标签中动态显示随机数.
我想在相同的标签中显示数字但是然后减慢数字的显示,这样在停止过程前5秒钟,数字的显示应该越来越慢,直到它停在最后的数字中.像抽奖一样.
任何线索?
Eri*_*ert 12
我可以先告诉你不该做什么.不要使用Thread.Sleep- 这样做几乎总是"最糟糕的做法",并会使您的UI无响应.
如果你Thread.Sleep在第二个线程上使用,正如mcl建议的那样,你不会冻结你的UI,但是你正在烧掉一个非常昂贵的线程来做很少的工作.
如果您使用的是C#4或更早版本,那么我会创建一个定时器,例如每秒四次.处理tick事件,如果自上次tick事件已经过了足够的时间,则更改标签.或者,每次滴答时更改计时器的间隔.
如果您使用的是C#5,则可以使用await Task.Delay(x):
async void Animate()
{
int delay = 5;
for(int i = 1; i < 10; ++i)
{
UpdateLabel();
await Task.Delay(delay);
delay = delay * 2;
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在你开始延迟5ms,然后是10,然后是20 ......
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |