我正在制作一个应用程序,我想在其中添加一个看起来很酷的打字机效果,而不会让UI与thread.sleep冻结。
所以我只是四处寻找一个解决方案,找到我在课堂上展示的异步的东西,一切都坏了,但我不明白为什么。它以前工作完美,但UI现在冻结了,但它没有,但文本是随机字符
旧(工作但冻结 ui):
private bool Write(string text)
{
foreach (char c in text)
{
Console.AppendText(c.ToString());
System.Threading.Thread.Sleep(5);
}
Console.AppendText(Environment.NewLine);
return true;
}
新(奇怪的字符不会冻结ui):
private async void Write(string text){
foreach (char c in text)
{
Console.AppendText(c.ToString());
await Task.Delay(5);
}
Console.AppendText(Environment.NewLine);
}
我希望新代码能够修复它所做的ui冻结,但文本非常不可读。这是前后的结果:
之前(使用旧代码和 ui 冻结):
ModuleRemover is aan het kijken voor updates.
ModuleRemover is al de laatste versie! (versie 2.4)
后:
MMododuuleleReRemomvoveerr i is s aaanl hdeet l kaaitjsketen vveoorsr iuep! d(atveesrs.
ie 2.4)
三国纷争
慕侠2389804
相关分类