C# 快速更改图片框中的图像

C# 快速更改图片框中的图像,c#,picturebox,C#,Picturebox,我试图快速连续显示3幅图像,每幅图像大约200毫秒。这是我现在的代码: for (int i = 0; i < 3; i++) { if ((_currentGridPos >= 0 && _currentGridPos < 2) || (_currentGridPos >= 3 && _currentGridPos < 5)) {

我试图快速连续显示3幅图像,每幅图像大约200毫秒。这是我现在的代码:

        for (int i = 0; i < 3; i++) 
        {
            if ((_currentGridPos >= 0 && _currentGridPos < 2) || (_currentGridPos >= 3 && _currentGridPos < 5))
            {
                pictureBox1.Image = Image.FromFile(@"C:\Users\Nyago\Images\g" + _currentGridPos + "_r" + i + ".JPG");
                pictureBox1.Refresh();
                Thread.Sleep(200);
            }
        }
for(int i=0;i<3;i++)
{
如果(_currentGridPos>=0&&u currentGridPos<2)|(_currentGridPos>=3&&u currentGridPos<5))
{
pictureBox1.Image=Image.FromFile(@“C:\Users\Nyago\Images\g”+\u currentGridPos+“\u r”+i+”.JPG”);
pictureBox1.Refresh();
睡眠(200);
}
}

我在这段代码中遇到的问题是,图片没有显示在我的图片框中,只是暂停了一下,就这样了。如果有人能帮助我,我将不胜感激

我建议您将方法标记为
async
并使用
Task.Delay

private async void DoSomething()
{
    for (int i = 0; i < 3; i++) 
    {
        if ((_currentGridPos >= 0 && _currentGridPos < 2) || (_currentGridPos >= 3 && _currentGridPos < 5))
        {
            pictureBox1.Image = Image.FromFile(@"C:\Users\Nyago\Images\g" + _currentGridPos + "_r" + i + ".JPG");
            pictureBox1.Refresh();
            await Task.Delay(200);//<--Note Task.Delay don't block UI
        }
    }
}
private异步void DoSomething()
{
对于(int i=0;i<3;i++)
{
如果(_currentGridPos>=0&&u currentGridPos<2)|(_currentGridPos>=3&&u currentGridPos<5))
{
pictureBox1.Image=Image.FromFile(@“C:\Users\Nyago\Images\g”+\u currentGridPos+“\u r”+i+”.JPG”);
pictureBox1.Refresh();

等待任务。延迟(200);//我建议您将方法标记为
async
并使用
Task.Delay

private async void DoSomething()
{
    for (int i = 0; i < 3; i++) 
    {
        if ((_currentGridPos >= 0 && _currentGridPos < 2) || (_currentGridPos >= 3 && _currentGridPos < 5))
        {
            pictureBox1.Image = Image.FromFile(@"C:\Users\Nyago\Images\g" + _currentGridPos + "_r" + i + ".JPG");
            pictureBox1.Refresh();
            await Task.Delay(200);//<--Note Task.Delay don't block UI
        }
    }
}
private异步void DoSomething()
{
对于(int i=0;i<3;i++)
{
如果(_currentGridPos>=0&&u currentGridPos<2)|(_currentGridPos>=3&&u currentGridPos<5))
{
pictureBox1.Image=Image.FromFile(@“C:\Users\Nyago\Images\g”+\u currentGridPos+“\u r”+i+”.JPG”);
pictureBox1.Refresh();

等待任务。延迟(200);//我建议您将方法标记为
async
并使用
Task.Delay

private async void DoSomething()
{
    for (int i = 0; i < 3; i++) 
    {
        if ((_currentGridPos >= 0 && _currentGridPos < 2) || (_currentGridPos >= 3 && _currentGridPos < 5))
        {
            pictureBox1.Image = Image.FromFile(@"C:\Users\Nyago\Images\g" + _currentGridPos + "_r" + i + ".JPG");
            pictureBox1.Refresh();
            await Task.Delay(200);//<--Note Task.Delay don't block UI
        }
    }
}
private异步void DoSomething()
{
对于(int i=0;i<3;i++)
{
如果(_currentGridPos>=0&&u currentGridPos<2)|(_currentGridPos>=3&&u currentGridPos<5))
{
pictureBox1.Image=Image.FromFile(@“C:\Users\Nyago\Images\g”+\u currentGridPos+“\u r”+i+”.JPG”);
pictureBox1.Refresh();

等待任务。延迟(200);//我建议您将方法标记为
async
并使用
Task.Delay

private async void DoSomething()
{
    for (int i = 0; i < 3; i++) 
    {
        if ((_currentGridPos >= 0 && _currentGridPos < 2) || (_currentGridPos >= 3 && _currentGridPos < 5))
        {
            pictureBox1.Image = Image.FromFile(@"C:\Users\Nyago\Images\g" + _currentGridPos + "_r" + i + ".JPG");
            pictureBox1.Refresh();
            await Task.Delay(200);//<--Note Task.Delay don't block UI
        }
    }
}
private异步void DoSomething()
{
对于(int i=0;i<3;i++)
{
如果(_currentGridPos>=0&&u currentGridPos<2)|(_currentGridPos>=3&&u currentGridPos<5))
{
pictureBox1.Image=Image.FromFile(@“C:\Users\Nyago\Images\g”+\u currentGridPos+“\u r”+i+”.JPG”);
pictureBox1.Refresh();

等待任务。延迟(200);//您的代码使UI线程保持忙碌状态,因此会阻止UI(包括更新其图形状态)。避免使用
thread.Sleep(200)使用计时器或异步/等待。这样,在等待200毫秒通过时,UI线程不会被阻塞。

您的代码使UI线程保持忙碌,因此会阻塞UI(包括更新其图形状态)。避免使用
线程。睡眠(200)使用计时器或异步/等待。这样,在等待200毫秒通过时,UI线程不会被阻塞。

您的代码使UI线程保持忙碌,因此会阻塞UI(包括更新其图形状态)。避免使用
线程。睡眠(200)使用计时器或异步/等待。这样,在等待200毫秒通过时,UI线程不会被阻塞。

您的代码使UI线程保持忙碌,因此会阻塞UI(包括更新其图形状态)。避免使用
线程。睡眠(200)
;改用计时器或异步/等待。这样,在等待200毫秒通过时,UI线程不会被阻塞。

为什么要使用
线程。Sleep
来实现此目的?旧的
计时器有什么问题吗?我想您正在更改UI线程中的图像。另外,尝试从文件中加载图像一次,在循环之外。这可能会有帮助。你为什么要使用
线程。Sleep
来执行此操作?一个好的旧
计时器有什么问题?我认为你正在更改UI线程中的图像。另外,尝试只从循环之外的文件加载一次图像。这可能会有帮助。你为什么要使用
线程。Sleep
来执行此操作?一个好的旧
计时器有什么问题ode>?我认为您正在更改UI线程中的图像。另外,尝试仅从文件中加载一次图像,在循环之外。这可能会有所帮助。为什么要使用
线程。Sleep
?一个好的旧
计时器有什么问题吗?我认为您正在更改UI线程中的图像。此外,尝试仅从文件中加载一次图像,我想这可能会有帮助。