我正在使用 Axlsx gem 来创建 Excel 工作表。
应用 Ruby 线程后工作表名称位置出错。
例如:
我想以这种方式订购单子
sheet 1
sheet 2
sheet 3
但是在应用红宝石线程后它进来了
sheet 2
sheet 1
sheet 3
如何保持工作表井井有条?
我正在使用 Axlsx gem 来创建 Excel 工作表。
应用 Ruby 线程后工作表名称位置出错。
例如:
我想以这种方式订购单子
sheet 1
sheet 2
sheet 3
但是在应用红宝石线程后它进来了
sheet 2
sheet 1
sheet 3
如何保持工作表井井有条?
这将基于您的 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)