【发布时间】:2014-02-11 00:22:34
【问题描述】:
我想知道当多个任务并行运行时,伪造一个长时间运行的任务的最佳方法是什么。首先想到的是 Thread.Sleep
public void FakeLongRunningTask()
{
Thread.Sleep(5000);
}
但是上面代码的问题是调用 Thread.Sleep 会阻塞这个线程,这意味着它会放弃它的处理器时间片,所以在并行环境中调用一个带有 Thread.Sleep 的方法和根本不调用它一样好.因此,如果我正在并行运行三个任务并且其中一个正在调用 Thread.Sleep,那么这个任务将不会影响性能(尽管它可能会迫使 CLR 生成更多线程!!!)。但我想要的是伪造一个会影响整体性能的任务。
【问题讨论】: