Обувь висит в сети::FTP поставил

Поэтому я написал следующий фрагмент кода:

Shoes.app(:title=> "Humax Uploader", :width=>400, :height=>400) {
    background rgb(240, 250, 208)
    stack(margin:10) {
        title "Humax Uploader"
        server = '[ip]'
        user = '[user]'
        pass = '[pass]'
        require 'net/ftp'
        @feedback = para "Find a file:"
        flow do
            @filename = edit_line :width => 150
            para ' '
            button 'Browse...' do
                @filename.text = ask_open_file
            end
        end

        file_list = ['My Music','My Photo','My Video']
        list_box :items => file_list do |list|
                Net::FTP.open(server, user, pass) { |ftp|
                    usize = 0
                    fsize = File.size(@filename.text)
                    ftp.putbinaryfile(@filename.text,"/mnt/hd2/" + list.text + "/" + File.basename(@filename.text),1024) { |block|  
                        usize += block.size
                        @p.fraction = fsize/usize
                    }
                    @file_select.text = "File uploaded!"
                    ftp.close
                }
            end
        @p = progress :width => 360
        @file_select = para " "
    }
}

По сути, он позволяет пользователю выбрать файл, папку, в которую он должен войти, и затем программа должна загрузить его.

Это происходит правильно: материал загружается нормально, но, к сожалению: окно программы зависает во время загрузки. Почему это происходит (у вас такие же проблемы?) И как я могу это исправить?

Спасибо за вашу помощь!

Обратите внимание, что я запускаю этот сценарий в Windows и еще не "собрал" исполняемый файл.

1 ответ

Решение

Он висит навсегда или только до тех пор, пока файл не будет загружен? В любом случае, я думаю, что это проблема планирования.

Возможно, вы захотите запустить загрузку в отдельном потоке ( эта ссылка также может быть полезна) или, возможно, запустить его как отдельный процесс и использовать своего рода сокет или файл для межпроцессного взаимодействия.

Другие вопросы по тегам