0

formasyncを取得するメソッドの記述に問題があります。ImageWebCam

このメソッドを次のように呼び出します。

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;
 }

上記のコードは機能します(ライブラリからのものです)、私はこれを書き込もうとしました:

public async static Task<BitmapSource> LoadBitmap(System.Drawing.Bitmap source) 
{
    return await Task.Run(() =>
    {
        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' に暗黙的に変換できません

私は同じものを返すので、理由はわかりません。

4

1 に答える 1

1

私の見方では、エラーは最初のコード スニペットにあり、次のようになります。

_FrameImage.Source = await Helper.LoadBitmapAsync((System.Drawing.Bitmap)e.WebCamImage);

await キーワードと Async サフィックスを追加しました (Filip の推奨に従って)。

functionの結果はLoadBitmapAsyncTask であり、プロパティに割り当てる前にその結果を待つ必要がありSourceます。

于 2013-04-07T10:50:58.307 に答える