我想知道当多个任务并行运行时,假冒长时间运行的任务的最佳方式是什么。自带的头脑第一件事就是了Thread.Sleep在并行处理中伪造长时间运行的进程的最佳方式是什么?
public void FakeLongRunningTask()
{
Thread.Sleep(5000);
}
但是与上面的代码的问题是,调用了Thread.Sleep将阻止这个线程这意味着它将放弃它的处理器时间片,因此调用线程使用的方法。在平行环境中睡觉和根本不调用它一样好。所以如果我并行运行三个任务,其中一个调用Thread.Sleep,那么这个任务对性能没有影响(尽管它可能会强制CLR生成更多的线程!!!)。但我想要的是伪造一个会影响整体性能的任务。
+1延迟是完美的,因为OP不想实际阻止线程。如果你提供了一个简短但完整的例子,这个答案会更完整。 – James
不确定。 'Task.Delay'也不使用CPU,是吗? –
@MthetheWWatson是你的权利,它不使用。 – terrybozzio