两个代码片段之间有什么区别

时间:2015-03-02 10:57:02

标签: c# winforms

我正在尝试创建一个启动画面窗体。其不透明度值设置为零。我有一个名为tmrfadein的计时器。它的间隔等于5.

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

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

Opacity += 0.01;

如果我使用此代码,则会在不等待

的情况下显示启动画面
do
{
    Opacity += 0.01;
}

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

当我调试代码时,一切看起来都不错。第二个有什么问题?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

do..while循环运行完成而不更新UI。您需要计时器或类似的东西来显示动画。