我在撰写检索async
表单Image
的{{1}}方法时遇到问题。
我这样称呼这个方法:
WebCam
和
void webcam_ImageCaptured(object source, WebcamEventArgs e)
{
_FrameImage.Source = Helper.LoadBitmap((System.Drawing.Bitmap)e.WebCamImage);
}
上面的代码(来自库),我试着写这个:
public static BitmapSource LoadBitmap(System.Drawing.Bitmap source)
{
ip = source.GetHbitmap();
bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, System.Windows.Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(ip);
return bs;
}
我得到错误:
错误3无法将类型'System.Threading.Tasks.Task'隐式转换为'System.Windows.Media.ImageSource'
并且不知道为什么,因为我回复了同样的事情。
答案 0 :(得分:1)
我看到它的方式,您的错误出现在第一个代码段中,它应该是:
_FrameImage.Source = await Helper.LoadBitmapAsync((System.Drawing.Bitmap)e.WebCamImage);
我添加了await关键字和Async后缀(根据Filip的建议)。
LoadBitmapAsync
函数的结果是一个任务,您需要在将其分配给Source
属性之前等待其结果。