| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Refresh формы при запуске сторонней программы |
| Автор: camion8707 26.4.2010, 10:36 | ||
| Здравствуйте, форумчане! На Visual Basic .NET пытаюсь программировать около месяца. Возник такой вот вопрос: Есть программа, внутри кода программы вызывается другой процесс (CREATE.EXE - программка написанная на TurboPascal), программа ждет, пока процесс завершится. Соответственно, во время выполнения процесса форма программы не прорисовывается. Собственно вопрос в том, как заставить форму прорисовываться или быть активной, пока выполняется процесс CREATE.EXE? Заранее спасибо!
|
| Автор: A5uKa 26.4.2010, 11:04 |
| Использовать таймер прерываний ? это первое, что пришло на ум... |
| Автор: KelTron 26.4.2010, 11:10 |
| Не ждать завершения процесса методом WaitForExit, т.к. он блокирует основной поток, а подписаться на событие Process.Exited |
| Автор: camion8707 26.4.2010, 12:37 | ||
| KelTron, СПАСИБО! как я понял просто стоит выставить me.refresh до тех пор пока процесс не завершится. но теперь еще один вопрос, как сделать чтобы форма не моргала, поскольку обновляется крайне часто. стоит ввести таймер или есть может какие-то еще средства?
|
| Автор: A5uKa 26.4.2010, 14:58 | ||
Возможно вместо Refresh хватит
|
| Автор: camion8707 26.4.2010, 15:52 |
| ОГРОМНОЕ спасибо A5uKa!!! Вы меня просто очень сильно выручили!!! А то я уже программу переделывать начал под параллельные процессы, а там свои сложности родились.. тему можно закрывать!! |
| Автор: A5uKa 26.4.2010, 16:08 |
| ^____^ |
| Автор: KelTron 26.4.2010, 16:20 |
| Нет, я говорил про другое. Хотя всё таки это событие не поможет, оно не срабатывает. Надо твою функцию запустить в отдельном потоке, для этого лучше всего подойдёт BackgroundWorker. (в цикле вызывать Application.DoEvents() плохая идея, т.к. бессмысленная нагрузка на проц) |