2
A
回答
2
使用ThreadPool
从数据库加载图像。
在
ThreadPool
,队列从数据库中的图像的负载;当图像加载时,仍然在线程池中,使用
BitmapFrame.Create()
将图像转换为ImageSource
;使用
Dispather.Invoke
,将Image
属性设置为加载的图像。
所以,这样的事情:
private void button1_Click(object sender, RoutedEventArgs e)
{
ThreadPool.QueueUserWorkItem(LoadImage, new LoadImageRequest { ImageName = "Image.png", Control = image1 });
}
private void LoadImage(object state)
{
var request = (LoadImageRequest)state;
byte[] data = ...; // load bytes from the database using request.ImageName
using (var stream = new MemoryStream(data))
{
var imageSource = BitmapFrame.Create(stream);
Dispatcher.BeginInvoke(
new Action<ImageSource>(p => request.Control.Source = p), imageSource
);
}
}
private class LoadImageRequest
{
public string ImageName;
public Image Control;
}
相关问题
- 1. 异步加载的图像
- 2. 异步加载图像
- 3. 从文件异步加载图像
- 4. 异步加载图像到桌面
- 5. Android图库异步图像加载
- 6. 将图像从Url异步加载到PictureBox
- 7. 异步加载时不出现在WPF窗体上的图像
- 8. 的Android异步图像加载[]
- 9. 异步图像加载UITableView问题
- 10. 异步加载图像中的Android
- 11. 在GridView中加载异步图像(Android)
- 12. JavaScript加载背景图像异步
- 13. 异步图像加载和Android画布
- 14. Firebase异步加载阵列图像
- 15. 异步加载图像使用jQuery
- 16. jQuery的加载图像,而异步假
- 17. ASP.NET MVC - 如何异步加载图像?
- 18. 如何异步加载本地图像?
- 19. 异步图像加载为iPhone
- 20. 异步图像加载闪烁?
- 21. 如何异步加载图像?
- 22. 在iPhone上异步加载图像
- 23. UITableViewCell的异步图像加载布局
- 24. 在Ruby中异步加载图像
- 25. iOS - 异步图像下载
- 26. 异步图像下载
- 27. 异步图像下载器
- 28. 加载图像到自定义表视图细胞异步
- 29. 在wpf中异步加载tableadapter
- 30. 异步加载图片
尼斯的答案,但我忘了说我不能使用调度员(或我不知道怎么做),我加载从图像类。 – cyrianox 2010-11-13 09:49:35
您必须使用调度程序。这是没有办法的。如果您从不同的线程加载图像(异步),只有一种方法可以将图像传回UI,并通过调度程序。这个例子显示了如何。 – 2010-11-13 09:53:44