이 같은 try catch
블록이 호출 때문에오류 MessageDialog.ShowAsync()로 await를 사용시는이 방법 내부
: 나는 라인
message.ShowAsync()
에 대한 다음과 같은 경고를 얻을try { // do something } catch (Exception ex) { MessageDialog message = new MessageDialog(ex.ToString()); message.ShowAsync(); }
호출이 완료되기 전에 현재 메소드의 실행이 계속됩니다. 호출 결과에 'await'연산자를 적용하는 것을 고려하십시오.
말했다과 수행은 :
'기다린다'연산자 만 비동기 방식 내에서 사용할 수 있습니다 :
지금 나는 예외를 얻을. 이 메소드를 'async'수정 자로 표시하고 리턴 유형을 'Task'로 변경하십시오.try { // do something } catch (Exception ex) { MessageDialog message = new MessageDialog(ex.ToString()); await message.ShowAsync(); }
나는 심지어 catch 블록 내에서 대기를 방지하기 위해이 시도 :
Exception exception;
try
{
// do something
}
catch (Exception ex)
{
exception = ex;
}
if (exception != null)
{
MessageDialog message = new MessageDialog(ex.ToString());
message.ShowAsync();
}
그러나,이 아무것도 변경되지 않습니다.
이 경우 await
을 사용하려면 무엇을해야합니까? MessageDialog.ShowAsync()
까지 IntelliSense는 Windows.Foundation.IAsyncOperation<IUICommand>
을 반환하는 기다릴 수있는 메서드를 보여줍니다.
오류가 당신이 그것을 해결하는 방법을 알려줍니다 반환 유형을 '작업'으로 변경 *. –
절대적으로 필수 읽기 : [async로 비동기 프로그래밍 및 await (C#)] (https://msdn.microsoft.com/en-us/library/mt674882.aspx). 그, 그리고 오류 메시지를 읽고, 분명히. – IInspectable