の非同期メソッドを使用して私の知る限りasync
にsync
方法を消すために把握するためにしてきた:ではなく、同期1
private async void RefreshScreen()
{
await System.Threading.Tasks.Task.Run(() =>
{
this.refreshContent();
this.refreshTokens();
}
);
}
は、より多くのを使用してそれを得るために、とにかくそこではないですエレガントな方法?あなたが把握することができたよう
EDIT
はRefreshContent()
とRefreshTokens()
は、Webサービスには、いくつかの呼び出しに従事しています。現在
public async System.Threading.Tasks.Task<string> GetUrlAsync()
{
ApiResponse<string> localVarResponse = await GetUrlAsyncWithHttpInfo();
return localVarResponse.Data;
}
public string GetUrl()
{
ApiResponse<string> localVarResponse = GetUrlWithHttpInfo();
return localVarResponse.Data;
}
、我々は"sync"
メソッドを使用していて、確かに、私たちはasync
呼び出しを使用して移動したい:
このWebサービスクライアントの実装では、メソッドを呼び出すためsync
とasync
方法を提供しています。
例:
public Enumerable<Element> GatherElements()
{
return yield new Element() {
Field1 = RESTClient.GetMethod1(),
Field2 = RESTClient.GetMethod2(),
Field3 = RESTClient.GetMethod3(),
Field4 = RESTClient.GetMethod4(),
Field5 = RESTClient.GetMethod5(),
Field6 = RESTClient.GetMethod6(),
Field7 = RESTClient.GetMethod7()
};
}
私は関係なく、各Field
がfullfilledされているかどうかのすべての要素を返すようにしたい、すべての残りのコールが完了するまで待機する必要はありません。
私がうまく説明したかどうかわかりません。
イベントハンドラでない場合は 'void'の代わりに' Task'を使います。 –
なぜ 'void'の代わりに' Task'を使うのが適していますか?どんなサンプルも提供できますか? – Jordi
サンプル: 'Task.Run'の中に' throw new Exception() 'を置き、' RefreshScreen'をどこかで実行してください。例外がスローされなかったことに気付きました。 – Fabio