宮木です。
ruby-gtkを使っていてThreadの中でsocketのgetsやreadlineを
やると妙に時間が掛かるのですが、どうしてなんでしょうか。
例えば、以下の様なプログラムを書くと、connect/login/chdir
と各数秒ずつかかります。
require 'ftplib'
require 'gtk'
class Window < Gtk::Window
def initialize
super(Gtk::WINDOW_TOPLEVEL)
set_title('test')
@bt = Gtk::Button.new('転送')
@bt.show
add @bt
@ftp = FTP.new
@bt.signal_connect('clicked'){trans}
end
def trans
@th = Thread.start{
@bt.set_sensitive false
@ftp.connect('host1')
@ftp.login('guest','passwd')
@ftp.chdir('tmp')
@ftp.getbinaryfile('testdata.dat','testdata.dat',4096){
print '#'
}
puts '#'
@bt.set_sensitive true
}
end
end
win = Window.new
win.show
Gtk.main
--
E-mail miyaki / wni.co.jp 宮木 昌広