在搜索代碼以淡出winform時,我在MSDN論壇上發現了這個page。更好的算法來淡化winform
for (double i = 0; i < 1; i+=0.01)
{
this.Opacity = i;
Application.DoEvents();
System.Threading.Thread.Sleep(0);
}
的for
環具有非整數遞增,並從以前的問題,我問,這不是一個很好的編程技術(由於大多數小數的不精確表示)。
我想出了這個選擇。
for (double i = 0; i < 100; ++i)
{
this.Opacity = i/100;
Application.DoEvents();
System.Threading.Thread.Sleep(0);
}
哪種效率更高?
如果有一個更好的淡出表單算法,如果包含它,我會很高興。
謝謝。
@DarrenDavies的'睡眠(0)'是線程的剩餘時間回到調度給其他線程運行的機會。也許在.NET上這是一樣的。 [MSDN states](http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v = vs.85).aspx):「如果指定0毫秒,則線程將放棄餘數的時間片,但仍然準備好._「 –
如何簡單地將'int'更改爲'double'? –
vb.net Single是C#中的「float」,而不是int。 –