[VS2010] Parallel.For初體驗

  在VS2010的.Net 4.0平台下,Parallel增加了不少東西,其中讓我感到好奇的就是System.Threading.Tasks.Parallel.For,它直接就可以跑Multi-Thread,在這之前有看過別人不少關於它的分享,但我在想的是,如果裡面我放個Thread.Sleep(1000),那它會怎麼樣?

  在VS2010的.Net 4.0平台下,增加了不少Parallel的東西,其中讓我感到好奇的就是System.Threading.Tasks.Parallel.For,它直接就可以跑Multi-Thread,在這之前有看過別人不少關於它的分享,但我在想的是,如果裡面我放個Thread.Sleep(1000),那它會怎麼樣?

  如果只是很單純的for迴圈裡放個Thread.Sleep(1000),跑個10次迴圈,所以它很正常的耗時10秒,那麼Parallel.For也是同樣的做法,它應該是耗時幾秒?之前沒有環境可以測,所以這個疑問一直存在我心理,昨天VS2010一裝好,馬上就寫一個來測.在雙核的CPU下,耗時3秒.在單核下則是3秒,有趣了,好像沒有因核心數變多,秒數就減少.此外,發現用Parallel.For有一個現象,因為這個迴圈我是寫在一個Button下測試,第一次按的時候是耗時最多的3秒左右,之後再連續按了幾次,耗時就開始往下降,一直降到1秒,如果再隔一段時間再按一下Button,秒數就又回到3秒左右. 不知道它的底層是怎麼在跑的,後續再找個時間來玩~