导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

SpinWait 结构

2013/12/13

提供对基于自旋的等待的支持。

Namespace:  System.Threading
程序集:  mscorlib(位于 mscorlib.dll 中)

public struct SpinWait

SpinWait 类型公开以下成员。

  名称说明
公共属性Count获取已对此实例调用 SpinOnce 的次数。
公共属性NextSpinWillYield获取对 SpinOnce 的下一次调用是否将产生处理器,同时触发强制上下文切换。
返回顶部

  名称说明
公共方法Equals指示此实例与指定对象是否相等。 (从 ValueType 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetHashCode返回此实例的哈希代码。 (从 ValueType 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法Reset重置自旋计数器。
公共方法SpinOnce执行单一自旋。
公共方法静态成员SpinUntil(Func<Boolean>)在指定条件得到满足之前自旋。
公共方法静态成员SpinUntil(Func<Boolean>, Int32)在指定条件得到满足或指定超时过期之前自旋。
公共方法静态成员SpinUntil(Func<Boolean>, TimeSpan)在指定条件得到满足或指定超时过期之前自旋。
公共方法ToString返回该实例的完全限定类型名。 (从 ValueType 继承。)
返回顶部

SpinWait 封装常见旋转逻辑。在单处理器计算机上,始终使用“生成”而不是“繁忙等待”,在使用 Intel™ 处理器(采用 Hyper-Threading™ 技术)的计算机上,它有助于防止硬件线程出现资源不足。SpinWait 封装旋转与真正生成的良好混合。

SpinWait 是一种值类型,这意味着低级别代码可以利用 SpinWait 而不用担心不必要的分配开销。SpinWait 并不广泛适用于普通应用程序。在大多数情况下,应使用 .NET Framework 提供的同步类,如 Monitor。在需要旋转等待的大多数情况下,SpinWait 类型应该优于 SpinWait 方法。

下面的示例演示如何使用 SpinWait

Windows Phone OS

受以下版本支持: 8.0

虽然 SpinWait设计为在并发应用程序中使用,但是不适合从多个线程同时使用。SpinWait 成员不是线程安全的。如果多个线程必须旋转,每个线程应该使用它自己的 SpinWait 实例。

显示:
© 2015 Microsoft