我想在我的程序中循环更改图像源,它是C#代码:
private void Img_MouseLeave(object sender, MouseEventArgs e)
{
Image image = sender as Image;
int milliseconds = 500;
for(int i = 0; i < ImageUris.Count(); i++)
{
Thread.Sleep(milliseconds);
image.Source = new BitmapImage(new Uri(@ImageUris[i], UriKind.Absolute));
}
}
但问题是当我运行我的程序时窗口被冻结了。窗口没有发生。我想也许它受到线程的影响,但我找不到办法。
答案 0 :(得分:3)
调用Thread.Sleep
将冻结正在运行您的应用程序的MainThread。
使用DispatcherTimer以避免冻结您的申请。
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 500);
private void dispatcherTimer_Tick(object sender, EventArgs e) {
// assign new source to the Image
}