【发布时间】:2009-12-03 19:14:45
【问题描述】:
我有一个用 Visual Studio 2008 c# 编写的程序,它使用
System.Threading.Tasks.Paralell.For(...
现在我想用单声道在 linux 环境中运行它,可以吗?如果有怎么办?
目前我有 Mono Jit 编译器版本 2.4.2.3 ,它无法运行上述程序...
【问题讨论】:
标签: c# mono monodevelop
我有一个用 Visual Studio 2008 c# 编写的程序,它使用
System.Threading.Tasks.Paralell.For(...
现在我想用单声道在 linux 环境中运行它,可以吗?如果有怎么办?
目前我有 Mono Jit 编译器版本 2.4.2.3 ,它无法运行上述程序...
【问题讨论】:
标签: c# mono monodevelop
Mono 2.4.2.3 不支持并行 LINQ。如果你不怕compiling mono from sources,我建议你这样做。
【讨论】:
您可能知道线程管理与底层操作系统密切相关且封闭。 Mono 团队尚未完成针对 Linux 的 TPL 实现,我怀疑他们是否能够尽快实现它,因为他们必须将它实现到他们支持的每个操作系统。
事实上,Jeremie Laval 在 2008 年 Google Summer of Code 期间开始实施实施:http://code.google.com/p/mono-soc-2008/source/browse/#svn/trunk/parallelfx
您可以在此处获取有关此实现的更多信息:http://blog.netmedia.info/2008/07/29/c-30-and-parallel-fxlinq-in-mono/
【讨论】:
您可以尝试为 Mono 使用 PFX implmentation by Jeremie Laval,但我发现它与 Microsoft 实现略有不同,因此可能需要进行一些移植才能使事情正常工作。
话虽如此,另一个潜在的可能性(未经测试)是使用新的Reactive Framework for .NET 3.5sp1,看看它是否适用于 Mono。它在其当前 API 中包含 PFX 库的反向移植。它可能在 Mono 上正常工作(但是,正如我所说,它在那里没有经过测试或支持)。
【讨论】: