0

我想在我的代码中使用 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()所有异步方法之后。

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

4

0 回答 0