Java早已有了Sleep和Yield,我在这里找到了针对Java的答案,但没有针对.NET的答案。
.NET 4 包含了新的Thread.Yield()静态方法。以前,将CPU交给其他进程的常见方式是Thread.Sleep(0)。
除了Thread.Yield()返回一个布尔值外,还有其他性能和操作系统内部的区别吗?
例如,我不确定Thread.Sleep(0)是否会在将当前线程切换为等待状态之前检查其他线程是否准备好运行......如果没有其他线程准备好运行,Thread.Sleep(0)似乎比Thread.Yield()更糟糕。
.NET 4 包含了新的Thread.Yield()静态方法。以前,将CPU交给其他进程的常见方式是Thread.Sleep(0)。
除了Thread.Yield()返回一个布尔值外,还有其他性能和操作系统内部的区别吗?
例如,我不确定Thread.Sleep(0)是否会在将当前线程切换为等待状态之前检查其他线程是否准备好运行......如果没有其他线程准备好运行,Thread.Sleep(0)似乎比Thread.Yield()更糟糕。
Sleep(0)
和Yield
之间有区别吗? - AnT stands with Russia