MicroSoftの解説に、次のようなコードが記載されています。
https://learn.microsoft.com/ja-jp/dotnet/standard/parallel-programming/how-to-cancel-a-task-and-its-children
この中に、次のように、SpinWait()を使っている部分があります。
For i As Integer = 0 To maxIterations
Dim sw As New SpinWait()
For j As Integer = 0 To 100
sw.SpinOnce()
Next
(・・・省略・・・)
Next
多分?少し時間稼ぎしているだけのように思えますが、ワザワザSpinWait()を使う理由ってありますか?Thread.Sleep()でもいいような?気がします。
詳しい方、教えて頂けませんか?
' Do a bit of work. Not too much. とコメントにあるように、少しだけの仕事を表すダミーコードです。 Sleep系の場合スレッドコンテキストの切り替えとかが起こるので、実際のアプリで書く「意味のあるコード」に対するサンプルコードとしての完全な代替にはなりません(完全な代替は必要ないというケースがほとんどですけども)。