タグ付けされた質問 「c#-5.0」

C#バージョン5.0での開発に関連する問題。

4
try / catch / finallyで待つための良い解決策はありますか?
次のように例外を(スタックトレースとともに)再度スローする前asyncに、catchブロック内のメソッドを呼び出す必要があります。 try { // Do something } catch { // <- Clean things here with async methods throw; } ただし、残念ながらawait、catchまたはfinallyブロックでは使用できません。それは、コンパイラーがcatchブロック内に戻ってawait命令の後にあるものを実行する方法がないためだと学びました... を使用Task.Wait()して交換しようとしたawaitところ、デッドロックが発生しました。これを回避する方法をウェブで検索して、このサイトを見つけました。 asyncメソッドを変更することも、使用するかどうかもわからないため、別のスレッドで(デッドロックを回避するために)非同期メソッドを開始し、その完了を待機するConfigureAwait(false)これらのメソッドを作成Func<Task>しました。 public static void AwaitTaskSync(Func<Task> action) { Task.Run(async () => await action().ConfigureAwait(false)).Wait(); } public static TResult AwaitTaskSync<TResult>(Func<Task<TResult>> action) { return Task.Run(async () => await action().ConfigureAwait(false)).Result; } public static void …

9
キャッチブロックで待つ
私は次のコードを持っています: WebClient wc = new WebClient(); string result; try { result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) ); } catch { result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) ); } 基本的にはURLからダウンロードしたいのですが、例外で失敗したら別のURLからダウンロードしたいです。もちろん、両方の時間は非同期です。ただし、コードはコンパイルされません。 エラーCS1985:catch句の本文で待機できません OK、なんらかの理由で禁止されていますが、ここでの正しいコードパターンは何ですか? 編集: 幸いなことに、C#6.0では、catchとfinallyブロックの両方で待機呼び出しが許可される可能性があります。

5
新しいC#待機機能は何をしますか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 4年前に閉鎖されました。 この質問を改善する await関数が何をするのか誰かが説明できますか?
83 c#  c#-5.0  async-await 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.