Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用鞋子进行多线程处理?Shoes.app块_Ruby_Shoes_Shoes 4 - Fatal编程技术网

Ruby 如何使用鞋子进行多线程处理?Shoes.app块

Ruby 如何使用鞋子进行多线程处理?Shoes.app块,ruby,shoes,shoes-4,Ruby,Shoes,Shoes 4,在相当头痛之后,我意识到Shoes.app调用会阻止进一步代码的执行。我尝试将其包装在线程中。新建,但窗口无法显示。如何启动窗口并从外部操纵它 require 'shoes' app = Shoes.app do para "I block the execution." button "I've seen enough" do exit end end print("Called when the window terminates") 我最初认为问题在于我在块内错

在相当头痛之后,我意识到
Shoes.app
调用会阻止进一步代码的执行。我尝试将其包装在
线程中。新建
,但窗口无法显示。如何启动窗口并从外部操纵它

require 'shoes'

app = Shoes.app do
  para "I block the execution."
  button "I've seen enough" do
     exit
  end
end

print("Called when the window terminates")

我最初认为问题在于我在块内错误地保存和处理了
app
或它的变量,因为手册中有一行关于它的特殊内容(关于块重定向),我在块外所做的并没有改变窗口。在我看来,手册中关于阻塞的内容不是很清楚。

只需将它们穿过孔眼,然后鞠躬。。。哈哈哈…为什么不把你的其他代码包装成一个线程呢?总之,一般来说,GUI线程是主要线程,因为您通常希望在GUI关闭(关闭,而不是隐藏)时停止其他所有操作。否则,你的用户会惊讶于你的应用程序仍然在后台运行,而他们本可以发誓关闭它。