CLR线程和Windows线程

作者:追风剑情 发布于:2017-7-5 20:37 分类:C#

CLR使用Windows的线程处理功能.

注意  在.NET Framework的早期岁月,CLR团队认为有朝一日CLR会提供不一定会映射到Windows线程的逻辑线程。但大约在2005年的时候,这个尝试宣告失败,CLR团队放弃了在这方面的努力。所以,今天的CLR线程完全等价于Windows线程。但.NET Framework仍然留下了一些能看出当年努力成果的一些东西。例如,System.Environment类公开了CurrentManagedThreadId属性,返回线程的CLR ID;而System.Diagnostics.ProcessThread类公开了Id属性,返回同一个线程的Windows ID。System.Thread类的BeginThreadAffinity和EndThreadAffinity方法则处理CLR线程没有映射到Windows线程的情况。

注意  Microsoft为Windows Store应用移除了和线程处理有关的一些API,因为它们是不好的编程实践,或者是因为它们不利于达成Microsoft为Windows Store应用设立的目标。例如,整个System.Thread类都不开放给Windows Store应用,因为其中有许多不好的API(比如Start, IsBackground, Sleep, Suspend, Resume, Join, Interrupt, Abort, BeginThreadAffinity和EndThreadAffinity)。

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号