C# 在picturebox中显示图像路径的数组(字符串),错误

C# 在picturebox中显示图像路径的数组(字符串),错误,c#,for-loop,C#,For Loop,我有这个代码在一个picturebox中显示4个图像,但它不工作,只显示最后一个图像 for (int i = 0; i < 4; i++) { Bitmap bmp = new Bitmap(array[i]); pictureBox.Image = Image.FromFile(array[i]); Thread.Sleep(2000); } for(int i=0;i

我有这个代码在一个picturebox中显示4个图像,但它不工作,只显示最后一个图像

for (int i = 0; i < 4; i++)
        {
            Bitmap bmp = new Bitmap(array[i]);
            pictureBox.Image = Image.FromFile(array[i]);
            Thread.Sleep(2000);
        }
for(int i=0;i<4;i++)
{
位图bmp=新位图(数组[i]);
pictureBox.Image=Image.FromFile(数组[i]);
《睡眠》(2000年);
}

使用
计时器
,例如
系统.Windows.Forms.Timer
(如果这是针对
WinForms
),来执行代码。将
间隔设置为2000 ms,并在其中更改
图片盒.Image


按照现在的方式,锁定UI线程2秒钟,然后再次更改图像。用户将在8秒钟内看不到任何东西,除了一个明显冻结的应用程序,然后他们将看到最后一个图像。

您需要更新界面,然后睡眠或主线程将被阻止,界面将不会被更新:

for (int i = 0; i < 4; i++)
    {
        Bitmap bmp = new Bitmap(array[i]);
        pictureBox.Image = Image.FromFile(array[i]);
        pictureBox.Refresh();
        Thread.Sleep(2000);
    }
for(int i=0;i<4;i++)
{
位图bmp=新位图(数组[i]);
pictureBox.Image=Image.FromFile(数组[i]);
pictureBox.Refresh();
《睡眠》(2000年);
}
另外,在主线程上进行睡眠从来都不是一个好主意,更好的方法是使用计时器并定期更改这些图像