C# 在事件处理程序-C中创建延迟#
我在C#中有一个WPF应用程序。当有人触摸图像(image1)时,我希望图像更改(image2),延迟2秒,最后更改为image3 我的代码如下所示:C# 在事件处理程序-C中创建延迟#,c#,wpf,events,uri,C#,Wpf,Events,Uri,我在C#中有一个WPF应用程序。当有人触摸图像(image1)时,我希望图像更改(image2),延迟2秒,最后更改为image3 我的代码如下所示: private void ImageName_TouchDown(object sender, TouchEventArgs e) { BitmapImage image = new BitmapImage(new Uri("c:/3.jpg", UriKind.Absolute)); ImageName
private void ImageName_TouchDown(object sender, TouchEventArgs e)
{
BitmapImage image = new BitmapImage(new Uri("c:/3.jpg", UriKind.Absolute));
ImageName.Source =image;
Thread.Sleep(2000);
image = new BitmapImage(new Uri("c:/4.jpg", UriKind.Absolute));
ImageName.Source = image;
}
我延迟了工作时间,但似乎c#只更新image3(4.jpg)。就像它无法在事件处理程序中更新图像源一样。我该怎么办?您可以使事件处理程序异步,并使用
Task.Delay
而不是Thread.Sleep
:
private async void ImageName_TouchDown(object sender, TouchEventArgs e)
{
BitmapImage image = new BitmapImage(new Uri("c:/3.jpg", UriKind.Absolute));
ImageName.Source =image;
await Task.Delay(2000);
image = new BitmapImage(new Uri("c:/4.jpg", UriKind.Absolute));
ImageName.Source = image;
}
效果很好。非常感谢。