gpt4 book ai didi

wpf - 在WPF中 sleep 循环

转载 作者:行者123 更新时间:2023-12-03 13:17:52 26 4
gpt4 key购买 nike

我一直在使用WPF和线程。

我想在for循环中暂停整个屏幕(仅适用于应用程序)。

例如。

foreach (classA a in classesA)
{
....
....
Thread.sleep(100);

}

但是,我发现它将休眠很长时间,然后一次执行所有语句。
这不是我想要的。我想在for循环的执行过程中休眠。也就是说,在第一个循环后要睡100毫秒,然后在第二个循环后要再睡...

我发现有些文章提到了DoEvents(),但是我对此并不十分熟悉,WPF似乎没有这种东西。

其他一些文章提到了DispatcherTimer。尽管如此,它仍不会锁定屏幕。
我想锁定整个屏幕(仅适用于应用程序),以防止在执行for循环期间单击任何按钮。

我该怎么办?

太感谢了!

最佳答案

如果您愿意尝试使用建议的asyncawait关键字,则可以使用类似的同步语义来实现 sleep 行为。您需要安装Async CTP来做到这一点。1

public aysnc void YourButton_Click(object sender, EventArgs args)
{
foreach (classA a in classes)
{
await Task.Delay(100);
}
}

1异步CTP使用 TaskEx而不是 Task

关于wpf - 在WPF中 sleep 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com