在深入研究F#的最新版本時,我試圖讓它與PLINQ交互。 但是,我注意到,這兩者在代碼方面並沒有很好的結合。 事實上,它似乎沒有可能寫出的代碼如下所示:F#和PLINQ擴展方法
open System.Linq
let someArray = [|"abc"; "def"|]
someArray.AsParallel().Count(new Func<_,_>(fun s -> s.Length = 3))
,因爲似乎包含在System.Linq.ParallelEnumerable類ParallelQuery擴展方法並沒有被F#得到回升。
如果根本不支持擴展方法,我不會感到驚訝,但是因爲我可以訪問爲IEnumerable定義的someArray.Count擴展方法,所以我不知道爲什麼我不能訪問PLINQ的那些擴展方法。
我錯過了什麼嗎?
這是F#限制嗎?如果是這樣,是否通過設計?如果不是,它將在未來的版本中解決嗎?
我知道異步工作流,但在一些情況下,他們肯定不是很方便的調用它作爲PLINQ。另外,請你把我的源代碼說明PLINQ + F#按計劃進行了嗎?最後,爲什麼擴展方法會在一種情況下工作(IEnumerable)並在另一箇中斷? –
em70
2009-05-28 19:04:45
是的,我同意PLINQ在某些情況下提供更大的範圍和功能。帖子已更新。 – Noldorin 2009-05-28 19:23:32