2017-01-16 93 views
2

我试图用IAsyncAction方法,但在等待我收到一个错误说:如何等待IAsyncAction方法?

“的等待操作只能在异步lambda函数中使用”求

谁能帮助返回一个异步函数不返回任何内容的正确格式

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

目前尚不清楚你想要做什么。错误信息中给出了最接近的原因。你正在做同步lambda中的'await'。你必须使用异步lambda:'async()=> {...}'。但是,这是否是你想要的还是不明确。 –

+0

'Task.Run(async()=>'yadda – Will

回答

3

试试这个:

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

没有必要尝试将InitializeCameraAsync转换为.Task.Run方法。