所以我刚开始学习C#,而我目前正在开发一个简单的Form应用程序。我想要做的是点击GIF时,它会切换到另一个GIF,然后在1秒后回到原始GIF。但是发生的事情一无所获。它只是保持原来的GIF。如果我尝试使用消息框而不是工作正常,它只是试图改变GIF的来源就是问题。
private void pictureBox1_Click(object sender, EventArgs e)
{
/* pictureBox2.Show();
Thread.Sleep(1000);
pictureBox2.Hide(); */
pictureBox1.Image = WindowsLogin.Properties.Resources.PenguinEXE;
Thread.Sleep(1000);
pictureBox1.Image = WindowsLogin.Properties.Resources.PenguinIdle;
}
我也尝试过使用Show
和Hide
方法,但这种做法也不起作用。
答案 0 :(得分:6)
您可以使用async/await。
将您的方法标记为async
并使用await Task.Delay(1000);
代替Thread.Sleep(1000);
async private void pictureBox1_Click(object sender, EventArgs e)
{
pictureBox1.Image = WindowsLogin.Properties.Resources.PenguinEXE;
await Task.Delay(1000);
pictureBox1.Image = WindowsLogin.Properties.Resources.PenguinIdle;
}