[英]TaskDelay in Windows Store App
string word = "sos";
Dictionary<string, string> Codes = new Dictionary<string, string>
{
{"a", ".- "}, {"b", "-... "}, {"c", "-.-. "}, {"d", "-.. "},
{"e", ". "}, {"f", "..-. "}, {"g", "--. "}, {"h", ".... "},
{"i", ".. "}, {"j", ".--- "}, {"k", "-.- "}, {"l", ".-.. "},
{"m", "-- "}, {"n", "-. "}, {"o", "--- "}, {"p", ".--. "},
{"q", "--.- "}, {"r", ".-. "}, {"s", "... "}, {"t", "- "},
{"u", "..- "}, {"v", "...- "}, {"w", ".-- "}, {"x", "-..- "},
{"y", "-.-- "}, {"z", "--.. "}, {"0", "-----"}, {"1", ".----"},
{"2", "..---"}, {"3", "...--"}, {"4", "....-"}, {"5", "....."},
{"6", ".----"}, {"7", "..---"}, {"8", "...--"}, {"9", "....-"}
};
async public void RunMorseCode()
{
foreach (char c in word.ToCharArray())
{
string rslt = Codes[c.ToString()].Trim();
foreach (char c2 in rslt.ToCharArray())
{
if (c2 == '.')
{
gridHalfFront.Opacity = 0;
await Task.Delay(100);
}
else if(c2 == '-')
{
gridHalfFront.Opacity = 0;
await Task.Delay(1000);
}
gridHalfFront.Opacity = 1;
}
}
}
是黑色的,然后停止工作,Windows Store App,有什么想法嗎?
這個問題是合乎邏輯的。 解:
gridHalfFront.Opacity = 1;
await Task.Delay(1000);
您還可以使用Blend並使用動畫和情節提要等創建狀態
我剛剛在適用於Windows 8.1和Windows 10的Windows應用商店應用程序的Visual Studio 2015RC中進行了檢查,在兩種情況下都可以使用,但是最好將另一個Task.Delay放在代碼中,否則閃爍效果將不可見-也許這是您認為“變黑”的是什么? 我建議您在之后添加另一行
gridHalfFront.Opacity = 1;
例如在這里添加
等待Task.Delay(100);
這使得閃爍更明顯,並且應用程序感覺更“響應”。
嘗試用以下命令替換Task.Delay()
調用:
new System.Threading.ManualResetEvent(false).WaitOne(milliseconds);
顯然, Task.Delay()
並不是您要執行的操作中最強大的功能 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.