моно проблемы с параллельными расширениями - PullRequest
1 голос
/ 03 декабря 2009

У меня есть программа, написанная в Visual Studio 2008 C #, которая использует

            System.Threading.Tasks.Paralell.For(...

Теперь я хочу запустить его в среде Linux, используя моно, это возможно? если да как?

В настоящее время у меня Mono Jit, версия 2.4.2.3, он не может запустить вышеуказанную программу ...

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

Как вы, возможно, знаете, управление потоками тесно связано с операционной системой. Команда Mono еще не завершила внедрение TPL для Linux, и у меня есть некоторые сомнения, что они смогут достичь этого в ближайшее время, поскольку им придется внедрять его для каждой поддерживаемой ОС.

На самом деле вы получаете начало реализации, сделанной во время Google Summer of Code 2008 Джереми Лавалом: 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/

1 голос
/ 03 декабря 2009

Вы можете попробовать имплементацию PFX Джереми Лаваля для Mono, но я обнаружил, что она несколько отличается от реализации Microsoft, поэтому может потребоваться некоторое портирование, чтобы все работало правильно.

При этом другой потенциальной возможностью (не проверенной) было бы использование новой Reactive Framework для .NET 3.5sp1 , и посмотреть, работает ли она в Mono. Он включает в себя бэкпорт библиотек PFX в их текущем API. Он может корректно работать на Mono (но, как я уже сказал, он там не тестировался и не поддерживается).

1 голос
/ 03 декабря 2009

Mono 2.4.2.3 не поддерживает Parallel LINQ. Если вы не боитесь компиляции моно из источников , я бы порекомендовал это сделать.

...