Task<T>
Windows 8 ランタイム コンポーネントを開発しているため、Windowsランタイム タイプではないため、パブリック インターフェイスに含めることができません。
これは、メソッドにマークを付けたり、ライブラリ内のメソッドにマークを付けたりasync
できないことを意味します。これにより、アプリケーション ロジックの処理方法について混乱が生じています。await
private 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
ですか?