日期:2014-05-17  浏览次数:20776 次

C#并行程序运行时间不稳定的问题
一段采用并行处理(Task类)的C#程序(一度使CPU利用率达到100%),使用Stopwatch类的TotalMilliseconds属性记录运行时间;
经过几次电脑重启测试(程序运行时无其他外部程序干扰),发现其运行时间有20%左右的不稳定突变;

其可能的原因有哪些?希望有高人能帮忙指点!

------解决方案--------------------
猜测你的并行程序陷入循环 死锁了 把代码贴出来看看
------解决方案--------------------
Task粒度不足,Task运行时间差异大。

比如你有5个Task,4个CPU,5个Task分别需要运行10、20、30、40、50秒。

如果调度器先调度了1234,再调度5,则运行时间是60秒。

如果调度器先调度2345,再调度1,则运行时间是50秒。