2015-03-02 98 views
-5

我试图创建一个启动画面窗体。其不透明度值设置为零。我有一个名为tmrfadein的计时器。它的间隔等于5.两个代码片段之间的区别是什么

如果我使用下面的代码,那么它按预期工作,飞溅形式逐渐出现。

if (Opacity == 1) 
{ 
    tmrfadein.Enabled = false; 
} 

Opacity += 0.01; 

如果我用这个代码,出现闪屏,而无需等待

do 
{ 
    Opacity += 0.01; 
} 

while (Opacity < 1); 
tmrfadein.Enabled = false; 

当我调试代码一切正常。第二个有什么问题?

+0

它会等什么?第二个代码会持续更新opacity,直到它变为1+,然后继续执行其余的代码 – Sayse 2015-03-02 11:01:12

回答

1

第二个示例在执行过程中没有任何延迟。第一个示例只会增加一次不透明度值,然后等待下一个计时器作业。第二个例子不断递增,直到第一个计时器作业中的值为1,因此没有延迟。您可以在等待时添加一个等待,或者只是坚持第一个示例?

0

do..while循环运行完成,无需更新UI。你需要需要一个计时器或类似的东西来显示动画。

相关问题