使用async和await操作构造代码

时间:2013-07-29 11:44:16

标签: c# asynchronous async-await

我想在我的代码中使用Await和Async操作以良好的方式构建我的代码。这就是我想要做的事情:

public myMainFunction()
{
    var stream = App.GetResourceStream(new Uri("Assets/Tiles/gradiant-mask.png", UriKind.Relative));
    byte[] byteStream = new byte[stream.Stream.Length];

    stream.Stream.Read(byteStream, 0, byteStream.Length);

    Task tsk = getBlurredbitmap1(session, blurBuffer);
    tsk.ContinueWith((myTask) =>
    {
        FACTORY.imageFusion(blurBuffer, byteStream.AsBuffer()):                       
    });
}

在main函数中我不能使用await操作,因为我重写了这个函数,所以签名必须匹配。

private async Task GetBlurredImageBitmapAsync(EditingSession session, byte[] blurBuffer) 
{
    WriteableBitmap wBitmap = new WriteableBitmap((int)session.Dimensions.Width, (int) session.Dimensions.Height);
    await session.RenderToWriteableBitmapAsync(wBitmap);
    session.Undo();

    blurBuffer = new byte[wBitmap.Pixels.AsBuffer().Length];
    wBitmap.Pixels.AsBuffer().CopyTo(blurBuffer);
}

private async Task getBlurredbitmap1(EditingSession session, byte[] blurBuffer) 
{
    await GetBlurredImageBitmapAsync(session, blurBuffer);
}

我想要的是执行此代码

Task tsk = getBlurredbitmap1(session,blurBuffer);
tsk.ContinueWith((myTask) => 
{                    
    FACTORY.imageFusion(blurBuffer, byteStream.AsBuffer()):                       
});
在所有异步方法之后的myMainFunction()

任何人都可以指导我如何构建我的代码。

0 个答案:

没有答案