110,569
社区成员
发帖
与我相关
我的任务
分享
Task.Run(() =>
{
for (int i = 0; i < paths.Length; i++)
{
Image1.Dispatcher.BeginInvoke(new Action(() =>
{
Image1.Source = new BitmapImage(new Uri(paths[i]));
}));
Task.Delay(100).Wait();
}
});
但 Source = new BitmapImage(new Uri(paths[i])); 这样的赋值会导致图片使用之后资源不能得到及时释放,应该设置BitmapImage的CacheOptionweiLoaded来缓存图片。具体msdn
PS:个人观点,欢迎指正。
ThreadPool.QueueUserWorkItem(obj =>
{
string[] paths = Directory.GetFiles(@"F:\MyPicture,""*.jpg");
for (int i = 0; i < paths.Length - 1; i++)
{
Task.Delay(100).Wait();
App.Current.Dispatcher.Invoke(() =>
{
Image1.Source = new BitMapImage(new Uri(paths[i]));
});
}
});
}