72
私はawait/sleepパラダイムに基づいてネットワーク接続のアプリケーションを作成しています。待っているThread.Sleepを取得する方法?
接続エラーが発生することがあります。私の経験上、しばらく待って操作をやり直してください。
問題は、await/asyncでThread.Sleepなどのブロッキング操作を使用すると、呼び出し元スレッドのすべてのアクティビティがブロックされるという問題です。
私は
await Thread.SleepAsync(10000)
と同じ効果をacheaveすると(10000)のThread.sleepを交換する必要がありますか?
UPDATE
私は、任意の追加のスレッド
が、私はまだA4.5のものとグリップに来ています。そのステートメントの後のコードで実行の分岐はどこですか?非スリープ/ブロッキング部分はそれを実行するか、待機する「スレッド」を実行しますか?主なノンブロッキング実行は、ブロックを次のように残すか(別名リターン)? – kenny
ええ。これは私が必要とするものです。 –
@kenny:私の['async'イントロ](http://nitoprograms.blogspot.com/2012/02/async-and-await.html)が役立つかもしれません。 'Task.Delay'によって返された待遇が' await'edであるとき、それは完了していないので、現在のメソッドは不完全なタスクを返します。後で、「遅延」が完了すると(スレッドではなくタイマーから)、メソッドの残りの部分が実行されるようにスケジュールされます。継続は、同じ元のスレッドに戻るかもしれない "文脈"で実行されます - 私のブログの詳細。 –