我正在使用Axlsx gem创建Excel工作表。
应用Ruby Thread后,工作表名称位置出错。
例如:
我希望以这种方式订购单张
sheet 1
sheet 2
sheet 3
但是在应用ruby线程之后
sheet 2
sheet 1
sheet 3
如何保持表单顺序?
答案 0 :(得分:0)
这将基于您的RubyFiddle示例
arr = (1..10).map do |i|
Thread.new{
sleep(rand(0)/10.0)
Thread.current["mycount"] = count
count += 1
}
end
arr.each do |t|
t.join
puts "#{t['mycount']}"
end
#24
#28
#29
#26
#23
#22
#25
#21
#27
#20
arr.sort_by{|t| t["mycount"]}.each do |t|
t.join
puts "#{t['mycount']}"
end
#20
#21
#22
#23
#24
#25
#26
#27
#28
#29
或者更好,尽管可能不适用于导出电子表格的完整解决方案
arr.sort_by(&:value).each(&:join)