2017-01-16 39 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方法。