2017-01-16 5 views
2

Ich versuche IAsyncAction Methode zu verwenden, aber ich erhalte eine Fehlermeldung auf Erwartung sagen:Wie warte ich auf eine IAsyncAction-Methode?

„Ein erwarten Betrieb nur in einem Asynchron-Lambda-Funktion verwendet werden kann“

Kann mir jemand helfen bei der Suche nach das richtige Format eine Asynchron-Funktion zurückzukehren, die nichts

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

Es ist nicht klar, was Sie zu tun versuchen. Der nächste Grund ist in der Fehlermeldung angegeben. Sie machen ein "erwarten" in einem synchronen Lambda. Sie müssen ein asynchrones Lambda verwenden: 'async() => {...}'. Aber ob Sie das wollen oder nicht, ist nicht klar. –

+0

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

Antwort

3

Versuchen Sie stattdessen zurückgibt:

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

Es muss nicht versucht werden, die InitializeCameraAsync in die .Task.Run Methode zu überführen.

Verwandte Themen