我使用紅寶石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