Task<T>Windows 8 ランタイム コンポーネントを開発しているため、Windowsランタイム タイプではないため、パブリック インターフェイスに含めることができません。
これは、メソッドにマークを付けたり、ライブラリ内のメソッドにマークを付けたりasyncできないことを意味します。これにより、アプリケーション ロジックの処理方法について混乱が生じています。awaitprivate async
これは、同期的にやりたいことを行う方法です。
Result r = TryGetAuthResultFromFile();
if(r != null)
{
return r;
}
r = GetAuthResultFromWebAuthenticationBroker();
return r;
問題は、TryGetResultFrom ファイルがasync Task<Result>メソッドであり、r を返すメソッドが返されることです。IAsyncOperation<Result>
私はこれを試しました(これは完全なコードではありませんが、理論は見ることができ、結果を継続して処理し、それらを返すことができます。結果を IAsyncOperation 型にいくつかフリギングする必要があります)。
TryGetAuthResultFromFile().ContinueWith(x=>
{
if(x.Result != null)
{
return x.result;
}
GetAuthResultFromWebAuthenticationBroker().ContinueWith(y=>
{
return y.Result;
});
});
これに関する問題はWebAuthenticationBroker、UI スレッドから呼び出されていない場合、 が機能していないように見えることです。NotImplementedException有用なエラーメッセージなしで有用なものをスローします。
TryGetAuthResultFromFile呼び出して結果を待ってから呼び出すにはどうすればよいGetAuthResultFromWebAuthenticationBrokerですか?