IronRuby 中的 System.Threading.Tasks.Parallel 错误
在 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
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
是什么导致了这个问题?
这只是一个错误吗?
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); }
);
}
}
Result
4
5
6
7
8
2
1
3
But, in IronRuby(1.1.3).
Some line empty or lose linefeed.
System::Threading::Tasks::Parallel::ForEach([1,2,3,4,5,6,7,8], Proc.new {|x|
puts x;
})
Result
1734
2
5
6
8
What coused this problem?
Is this just a bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看来 IronRuby 的
puts
不是线程安全的。如果您在 IR 中使用Console.WriteLine()
,它可以正常工作:It seems IronRuby's
puts
is not thread-safe. If you useConsole.WriteLine()
in IR, it works fine: