Task.Delay はいつ使用すべきか、Thread.Sleep はいつ使用すべきか? 質問する

Task.Delay はいつ使用すべきか、Thread.Sleep はいつ使用すべきか? 質問する

いつ使用するかの適切なルールはありますか?タスク遅延スレッド.スリープ?

  • 具体的には、一方が他方よりも効果的/効率的になるために提供すべき最低限の値はありますか?
  • 最後に、Task.Delay は async/await ステート マシンでコンテキスト切り替えを引き起こすため、これを使用することでオーバーヘッドは発生しますか?

ベストアンサー1

使用Thread.Sleep現在のスレッドをブロックしたい場合。

使用await Task.Delay現在のスレッドをブロックせずに論理的な遅延が必要な場合。

これらのメソッドでは、効率を最優先する必要はありません。実際の使用では、主に I/O 操作の再試行タイマーとして使用され、ミリ秒単位ではなく秒単位になります。

おすすめ記事