System.Threading.Tasks.Parallel ошибка в IronRuby - PullRequest
1 голос
/ 22 сентября 2011

In C #

class ParallelTest
{
    public static void Main()
    {
        System.Threading.Tasks.Parallel.ForEach(new []{1,2,3,4,5,6,7,8},
                        x => { System.Console.WriteLine(x); }
                    );
    }
}

Результат
4
5
6
7 * * +1010 8
2
1
3

Но в IronRuby (1.1.3).
Некоторая строка пуста или теряет перевод строки.

System::Threading::Tasks::Parallel::ForEach([1,2,3,4,5,6,7,8], Proc.new {|x|
    puts x;
})

Результат
1734

2

5
6
8

Что вызвало эту проблему?
Это просто ошибка?

1 Ответ

2 голосов
/ 22 сентября 2011

Кажется, IronRuby puts не является поточно-ориентированным.Если вы используете Console.WriteLine() в ИК, он отлично работает:

System::Threading::Tasks::Parallel::ForEach([1,2,3,4,5,6,7,8], Proc.new {|x|
    System::Console::WriteLine(x)
})
...