2017-02-09 11 views
1

Что мне нужно: мой скрипт/программа (?) Чтобы сделать что-то на кнопке, нажмите, подождите, если условия будут соответствовать, и покажите, сколько времени осталось.Powershell GUI & loop pauses

Что происходит: когда я использую «Start-Sleep», он приостанавливает графический интерфейс и не отображает, как долго остается до самого конца, когда он отображает весь текст за раз.

Я попытался найти что-то в Интернете и подошел сухой. Я пытался, пока, и делаю - пока петли все действуют одинаково. Поэтому я надеюсь, что есть еще один способ приостановить цикл.

В основном это сценарий, я использую:

$btn.add_click ({ 
    Foreach ($_ in $stuff) 
    { 
     #do stuff 
     If ($x -eq $y) 
     { 
      $n = 30 
      While ($n -gt 0) 
      { 
       $textbox.text += "$n seconds left`n" 
       ###WAIT 1-5 SECOND(s)### 
       $n -- 
      } 
     } 
    } 
}) 
+0

Привет, проверьте [это] (https://foxdeploy.com/2016/05/17/part-v-powershell-guis-responsive-apps-with-progress-bars/) out (WPF) – sodawillow

+0

@sodawillow Кажется, что это может сработать, я дам ему выстрел. – Captor

+0

@sodawillow это сработает для меня. Спасибо за вашу помощь! – Captor

ответ

1

Here is весьма всеобъемлющий учебник по @FoxDeploy, который поможет вам создать свой WPF GUI таким образом, что позволяет командам быть вызваны из пользовательского интерфейса без замораживания ,

Я не разделяю никакого кода здесь, потому что на самом деле его слишком много.