【问题标题】:How to await an IAsyncAction method?如何等待 IAsyncAction 方法?
【发布时间】:2017-01-16 17:26:59
【问题描述】:

我正在尝试使用 IAsyncAction 方法,但在等待时我收到一条错误消息:

“await 操作只能在异步 lambda 函数中使用”

任何人都可以帮助找到返回不返回任何内容的异步函数的正确格式

IAsyncAction ICameraHelper.startCameraPreview(CaptureElement PreviewControl)
{
    try
    {
        return Task.Run(() =>
        {
            await InitializeCameraAsync(PreviewControl);
            RegisterEventHandlers();
        }).AsAsyncAction();
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

【问题讨论】:

  • 不清楚您要做什么。错误消息中给出了近似原因。您正在同步 lambda 中执行 await。您必须使用异步 lambda:async () => { ... }。但是这是否是你想要的还不清楚。
  • Task.Run( async () =>yadda

标签: c# asynchronous async-await uwp


【解决方案1】:

试试这个:

async IAsyncAction ICameraHelper.startCameraPreview(CaptureElement PreviewControl)
{
    await InitializeCameraAsync(PreviewControl);
    RegisterEventHandlers();
}

无需尝试将InitializeCameraAsync 传递给.Task.Run 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    相关资源
    最近更新 更多