我在这个F#代码中做错了什么?
let parallelTest n = Color(Color.DeepPink,Triangles(sphere n));;我在这个F#代码中做错了什么?
的Parallel.For(0,10,新的行动(parallelTest));;
错误消息: 错误FS0001:类型不匹配。期望 int - >单元 ,但给出了一个 int - >场景。 类型“单元”不匹配类型“场景”
,我会很高兴,如果一些身体帮我。
在哪个位置发生此错误信息? (我不能重现的错误,因为我不知道你使用某些功能的delcarations)
我想以下几点:Parallel.For
需要一个int -> unit
(在标准.NET Action<int>
),但parallelTest
有不同的类型( int -> scene
),因此它是不兼容的。
什么是你想实现与整个代码?
嗨达里奥, 感谢您的帮助,我试图做表面subdvision并行,但我尝试使用此Parallel.For作为一种意思,使我的工作容易做到并行版本。你有什么提示可以让我轻松并且平行地做到这一点吗?再次感谢。 – Angelica 2009-10-11 16:23:20
撰写函数ignore
使其返回unit
:
Parallel.For(0, 10, parallelTest >> ignore)
嗨毛里西奥,谢谢你的帮助。有用!!!!!!!但现在我需要知道我该如何返回一个场景类型?再次感谢你的帮助。 – Angelica 2009-10-11 17:49:36
Parallel.For不返回任何值。这可能会帮助你:http://weblogs.asp.net/podwysocki/archive/2009/02/23/adding-parallel-extensions-to-f.aspx。如果您有更多疑问,请创建其他问题。 – 2009-10-11 18:31:28
如果你想10个结果,或许你想
[| for i in 0..9 do
async { return parallelTest i } |]
|> Async.Parallel
|> Async.RunSynchronously
这将返回的10个场景结果的数组。
根据你的代码和你的一些评论,看起来你并没有完全处于F#编程风格的状态。你可以发布你的代码并描述你实际上想要做什么吗? – Juliet 2009-10-11 19:34:55