2017-01-16 7 views
2

私はIAsyncActionメソッドを使用しようとしているが、私はというエラーを取得しています待っているの午前:IAsyncActionメソッドの待機方法

「Anが操作は非同期ラムダ関数でのみ使用することができます待つ」誰が見つけるのに役立つことができます何も返さない非同期機能を返すの正しい形式は

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

あなたがしようとしていることは明確ではありません。エラーメッセージには、最も近い理由が示されています。あなたは同期ラムダで 'await'をやっています。非同期ラムダ: 'async()=> {...}'を使わなければなりません。しかし、それがあなたが望むかどうかは不明です。 –

+0

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

答えて

3

代わりにこれを試してみてください:

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

InitializeCameraAsync.Task.Runメソッドに渡す必要はありません。

関連する問題