我有这个 foreach 循环,可以更改四个图像的图像源(在 Xamarin Forms 应用程序中):
int i = 0;
Device.StartTimer(TimeSpan.FromMilliseconds(50), () =>
{
i ++;
foreach (var img in imgs)
{
img.Source = $"radial{i}.png";
}
if (i == 5)
i = 0;
return true;
});
但结果是四张图片不是同时变化的,动画不流畅。这里网格被分为四个部分,每个部分都有自己的 ImageView :
当我使用 FromSeconds(1)
而不是 FromMilliseconds(200)
时,动画变得更加流畅
这些是我使用的图像,当我想画一个完整的圆时我会旋转它们:
最佳答案
您可以尝试使用 System.Collections.Concurrent 并使用
调用您的循环Parallel.ForEach(imgs, img => {
img.Source = $"radial{i}.png";
});
但是根据您想要实现的目标来判断,我宁愿使用 SkiaSharp 绘图插件以编程方式创建动画。
关于c# - 对所有项目同时执行 foreach block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47605966/