对所有项目同时执行foreach块?

msh*_*hwf 5 c# foreach xamarin.forms

我有这个foreach循环,它改变了四个图像的Image's Source(在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;
            });
Run Code Online (Sandbox Code Playgroud)

但结果是四个图像没有同时变化,动画也不平滑.这里的网格分为四个季度,每个季度都有自己的图像视图:

在此输入图像描述

当我使用FromSeconds(1)而不是FromMilliseconds(200),动画变得更加流畅

这些是我使用的图像,当我想画一个完整的圆圈时我会旋转它们:

在此输入图像描述

Mar*_*hel 0

您可以尝试使用 System.Collections.Concurrent 并使用调用循环

Parallel.ForEach(imgs, img => {
    img.Source = $"radial{i}.png";
});
Run Code Online (Sandbox Code Playgroud)

然而,根据您想要实现的目标来判断,我宁愿使用 SkiaSharp 绘图插件以编程方式创建动画。