我使用红宝石1.8.7 patchlevel 302,我正在使用Windows XP系统。 我必须启动一个需要对用户输入做出反应的外部进程。如果我使用线程,进程不会反应,所以我尝试使用fork。对于fork,外部进程会对用户输入做出反应,但它不仅仅执行fork块。例如分叉与红宝石1.8和Windows
fork do
puts 'child'
end
puts 'parent'
Process.wait
puts 'done'
产生在我的机器上输出如下:
parent
child
parent
done
done
正如你可以看到“做”和“父”打印两次。我能做些什么来让孩子只执行其块,而不是更多? (因为一些宝石,我不能切换到Ruby 1.9)
你使用的是cygwin ruby吗?叉如何工作? – rogerdpack 2010-10-04 18:59:28
叉子是如何工作的?你使用win32库吗? – 2013-07-10 07:03:34
您需要win32-进程宝石。在红宝石1.8.7你需要版本0.6.6(至少对于Windows 8) – Automatico 2014-05-16 15:26:31