本文整理汇总了VB.NET中System.Threading.SpinWait结构体的典型用法代码示例。如果您正苦于以下问题:VB.NET SpinWait结构体的具体用法?VB.NET SpinWait怎么用?VB.NET SpinWait使用的例子?那么, 这里精选的结构体代码示例或许可以为您提供帮助。
在下文中一共展示了SpinWait结构体的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。
示例1: SpinWaitDemo
' 导入命名空间
Imports System.Threading
Imports System.Threading.Tasks
Module SpinWaitDemo
' Demonstrates:
' SpinWait construction
' SpinWait.SpinOnce()
' SpinWait.NextSpinWillYield
' SpinWait.Count
Private Sub SpinWaitSample()
Dim someBoolean As Boolean = False
Dim numYields As Integer = 0
' First task: SpinWait until someBoolean is set to true
Dim t1 As Task = Task.Factory.StartNew(
Sub()
Dim sw As New SpinWait()
While Not someBoolean
' The NextSpinWillYield property returns true if
' calling sw.SpinOnce() will result in yielding the
' processor instead of simply spinning.
If sw.NextSpinWillYield Then
numYields += 1
End If
sw.SpinOnce()
End While
' As of .NET Framework 4: After some initial spinning, SpinWait.SpinOnce() will yield every time.
Console.WriteLine("SpinWait called {0} times, yielded {1} times", sw.Count, numYields)
End Sub)
' Second task: Wait 100ms, then set someBoolean to true
Dim t2 As Task = Task.Factory.StartNew(
Sub()
Thread.Sleep(100)
someBoolean = True
End Sub)
' Wait for tasks to complete
Task.WaitAll(t1, t2)
End Sub
End Module