Ruby结束窗口大小更改

Ruby结束窗口大小更改,ruby,terminal,resize,window,size,Ruby,Terminal,Resize,Window,Size,在ruby中,我试图获得终端的窗口大小。为此,我以以下方式使用Highline: def get_size (@cols, @rows) = HighLine::SystemExtensions.terminal_size end 在主方法中,我在窗口更改上有一个陷阱,如下所示: Signal.trap('SIGWINCH') do get_size ... do other work end 我遇到的困难是我只想。。。完成窗口大小更改后,执行“其他工作”。如果我拖动并更改窗口大

在ruby中,我试图获得终端的窗口大小。为此,我以以下方式使用Highline:

def get_size
  (@cols, @rows) = HighLine::SystemExtensions.terminal_size
end
在主方法中,我在窗口更改上有一个陷阱,如下所示:

Signal.trap('SIGWINCH') do
  get_size
  ... do other work
end

我遇到的困难是我只想。。。完成窗口大小更改后,执行“其他工作”。如果我拖动并更改窗口大小,陷阱会在我的所有动作中被调用。是否有一个事件或信号,我可以陷阱窗口大小的变化完成?或者我可以采用某种编程方法,仅在窗口大小的拖动和更改完成后才开始工作?

AFAIK,没有办法监听“信号不再发出”。通常的方法是延迟作业执行,直到上次延迟后经过1秒。