@TechNOIR

Powershell. Как реализовать фоновое выполнение цикла в gui скрипте?

Добрый день.

Столкнулся в проблемой, надеюсь на Вашу помощь.

Есть GUI скрипт. Подразумевается постоянное выполнение цикла в фоне приложения. Но никак не пойму как это сделать.

Тоесть например скрипт:

$form = New-Object WindowsApplication1.Form1
бла бла бла
$form.ShowDialog()


и есть цикл:

while ($ExitFlag -eq $False) {
 Write-Host "новый цикл обработки сообщений" -ForegroundColor Green
}

Пытаюсь встроить цикл чтобы форма работала и он выполнялся в фоне.

1. Если вставить до Showdialog. То выполняется цикл но форма не открывается, до выполнения цикла.

2. Если поставить после Showdialog. То выполняет форма, если ее закрыть то начинается цикл.

3. Если вставить ShowDialog в цикл, то сами понимаете форма не может закрыться и это приводит к зависанию..

Есть идеи товарищи? Спасибо заранее!

P.S. При это из цикла должны возвращаться в форму значения. Тоесть в моем представлении это 2 потока взаимодействующие между собой
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 2
@cicatrix
было бы большой ошибкой думать
Может, попробовать вместо ShowDialog() просто Show().
ShowDialog - показывает модальную форму с блокировкой дальнейшего исполнения до возврата.
Show просто покажет форму, и исполнение продолжится.
В этом случае к свойствам и методам самой формы можно обращаться из вызывающего кода.
Недостаток - надо будет отлавливать событие закрытия из вызывающего кода.
Ответ написан
@azarij
Enterprise Tech Support Advisor
https://stackoverflow.com/questions/49053357/updat...

тут описаны 2 решения.
Show() вместо ShowDialog()
и использование таймера
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы