我有一个用 Visual Studio 2008 c# 编写的程序,它使用
System.Threading.Tasks.Paralell.For(...
现在我想使用单声道在linux环境中运行它,可以吗?如果是这样怎么办?
目前我有 Mono Jit 编译器版本 2.4.2.3 ,它无法运行上述程序...
我有一个用 Visual Studio 2008 c# 编写的程序,它使用
System.Threading.Tasks.Paralell.For(...
现在我想使用单声道在linux环境中运行它,可以吗?如果是这样怎么办?
目前我有 Mono Jit 编译器版本 2.4.2.3 ,它无法运行上述程序...
Mono 2.4.2.3 不支持并行 LINQ。如果您不害怕从源代码编译单声道,我建议您这样做。
您可以尝试Jeremie Laval为 Mono 实现的 PFX 实现,但我发现它与 Microsoft 实现略有不同,因此可能需要进行一些移植才能使事情正常工作。
话虽如此,另一种潜在的可能性(未经测试)是使用新的Reactive Framework for .NET 3.5sp1,看看它是否适用于 Mono。它在其当前 API 中包含 PFX 库的反向移植。它可能在 Mono 上正常工作(但是,正如我所说,它在那里没有经过测试或支持)。
正如您可能知道的那样,线程管理与底层操作系统密切相关且封闭。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/