【发布时间】:2009-06-05 09:41:44
【问题描述】:
我正在编写一个应用程序,它将与网络一起使用。 作为一个 GUI,我使用的是 rubyqt。 要确定服务器是否启动,我必须 ping 它(使用 net/ping)。 但是我遇到了一个问题。如果服务器宕机, 即使我将代码放入 Thread 或 IO.popen 循环中,GUI 也会因超时而冻结。
Thread.new('switch') do
if Net::PingExternal.new("195.168.255.244",timeout=0.9).ping then
down = false
else
down = true
end
end
将冻结 0.9 秒。由于 QtThreads 尚未与 rubyqt 一起使用, 有人想让 GUI 不死机(除了减少超时)吗?
我正在考虑将 ping-part 放在一个外部程序中,该程序将状态(上/下)写入一个文件,然后实际程序读取该文件,但这个解决方案似乎有点笨拙。
【问题讨论】:
标签: ruby user-interface qt freeze