none
Thread.SpinWait方法和SpinWait对象的区别? RRS feed

答案

  • Hi Syuesw,

      欢迎来到MSDN中文论坛。

      SpinWait 结构是NET 4.0后加入的,而Thread.SpinWait是  .Net 1.0就有的。SpinWait 结构体的具体的你可以看MSDN文档。

     

      SpinWait is not generally useful for ordinary applications. In most cases, you should use the synchronization classes provided by the .NET Framework, such as Monitor. For most purposes where spin waiting is required, however, the SpinWait type should be preferred over the SpinWait method.

      其他论坛也有类似的评价:

      How is NET 4.0 SpinWait method different to pre-4.0 SpinWait()?


    Jason Wang [MSFT]
    MSDN Community Support | Feedback to us

    2013年3月25日 6:41
    版主
  • hello,

    System.Threading.SpinWait 是.NET4.0的产物,简单来说就是为了现在多核心CPU特性而产生的,用法也跟 Thread.SpinWait 很不一样

    再者,MSDN应该是写"在需要旋转等待的大多数情况下,SpinWait 类型应该优于 SpinWait 方法。",这是指同线程同步等待的意思


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2013年3月25日 18:13
  • dear

    线程跟核心不是绝对的关系,单核心的电脑仍能建立多线程,并非单核就只能创建一条线程,.NET依照多核新的特性,在4.0发展出平行运算,建议你看这本书,System.Threading.SpinWait 就是为了多核的特性建立的

    http://tl.zxhsd.com/kgsm/ts/big5/2012/02/02/2167932.shtml


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2013年3月26日 13:02

全部回复

  • Hi Syuesw,

      欢迎来到MSDN中文论坛。

      SpinWait 结构是NET 4.0后加入的,而Thread.SpinWait是  .Net 1.0就有的。SpinWait 结构体的具体的你可以看MSDN文档。

     

      SpinWait is not generally useful for ordinary applications. In most cases, you should use the synchronization classes provided by the .NET Framework, such as Monitor. For most purposes where spin waiting is required, however, the SpinWait type should be preferred over the SpinWait method.

      其他论坛也有类似的评价:

      How is NET 4.0 SpinWait method different to pre-4.0 SpinWait()?


    Jason Wang [MSFT]
    MSDN Community Support | Feedback to us

    2013年3月25日 6:41
    版主
  • 按照MSDN文档的说法,SpinWait结构在大多数情况下优于Thread.SpinWait方法,“大多数情况下”是指?

    2013年3月25日 13:24
  • hello,

    System.Threading.SpinWait 是.NET4.0的产物,简单来说就是为了现在多核心CPU特性而产生的,用法也跟 Thread.SpinWait 很不一样

    再者,MSDN应该是写"在需要旋转等待的大多数情况下,SpinWait 类型应该优于 SpinWait 方法。",这是指同线程同步等待的意思


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2013年3月25日 18:13
  • Thread.SpinWait难道不是如同SpinWait结构一样让CPU进行短暂的旋转等待?两者都是在多核CPU上才能体现出它的作用的吧?

    • 已编辑 syuesw 2013年3月26日 7:42
    2013年3月26日 7:33
  • hi,

    相同功能但用法不一样,单核仍能创建多线程..


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2013年3月26日 8:04
  • 单核的旋转等待没有意义的吧,假设不把当前线程让出去,旋转等待多少次结果都得不到所需要的资源。

    "相同功能但用法不一样"这点能举个例子吗?

    2013年3月26日 8:56
  • dear

    线程跟核心不是绝对的关系,单核心的电脑仍能建立多线程,并非单核就只能创建一条线程,.NET依照多核新的特性,在4.0发展出平行运算,建议你看这本书,System.Threading.SpinWait 就是为了多核的特性建立的

    http://tl.zxhsd.com/kgsm/ts/big5/2012/02/02/2167932.shtml


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2013年3月26日 13:02