Я пишу сценарий Ruby 1.9.2 для оценки времени выполнения различных внешних вызовов командной строки.
Я использовал ruby Process.system для выполнения вызовов командной строки и попытался зафиксировать время выполнения следующим образом:
start = Time.now
system("./script1", "argX")
puts "Duration: #{Time.now - start} seconds"
Теперь у меня проблема, заключающаяся в том, что длительность отражает не время выполнения внешнего процесса, а время выполнения " системный "вызов. но я хотел бы как-то обновить диалоговое окно прогресса, чтобы показать пользователю реальный прогресс вместо фиктивного сообщения «Подождите ...». Могу ли я каким-то образом получить доступ к диалоговому окну прогресса из MyTask.doInBackground
, где вся работа сделана?
Насколько я понимаю, он работает как отдельный поток, поэтому я не могу «разговаривать» с основным действием оттуда, и именно поэтому я использую onPostExecute
, чтобы вернуть ему результат. Но проблема в том, что onPostExecute
вызывается только тогда, когда вся работа уже сделана, и я хотел бы обновить прогресс в диалоговом окне, когда что-то делаю.
Есть советы, как это сделать?