![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| camion8707 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.4.2010 Репутация: нет Всего: нет |
Здравствуйте, форумчане!
На Visual Basic .NET пытаюсь программировать около месяца. Возник такой вот вопрос: Есть программа, внутри кода программы вызывается другой процесс (CREATE.EXE - программка написанная на TurboPascal), программа ждет, пока процесс завершится. Соответственно, во время выполнения процесса форма программы не прорисовывается. Собственно вопрос в том, как заставить форму прорисовываться или быть активной, пока выполняется процесс CREATE.EXE? Заранее спасибо!
|
|||
|
||||
| A5uKa |
|
|||
|
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 3 Всего: 16 |
Использовать таймер прерываний ?
это первое, что пришло на ум... |
|||
|
||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Не ждать завершения процесса методом WaitForExit, т.к. он блокирует основной поток, а подписаться на событие Process.Exited
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| camion8707 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.4.2010 Репутация: нет Всего: нет |
KelTron, СПАСИБО!
как я понял просто стоит выставить me.refresh до тех пор пока процесс не завершится. но теперь еще один вопрос, как сделать чтобы форма не моргала, поскольку обновляется крайне часто. стоит ввести таймер или есть может какие-то еще средства?
|
|||
|
||||
| A5uKa |
|
|||
|
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 3 Всего: 16 |
Возможно вместо Refresh хватит
|
|||
|
||||
| camion8707 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.4.2010 Репутация: нет Всего: нет |
ОГРОМНОЕ спасибо A5uKa!!!
Вы меня просто очень сильно выручили!!! А то я уже программу переделывать начал под параллельные процессы, а там свои сложности родились.. тему можно закрывать!! |
|||
|
||||
| A5uKa |
|
|||
|
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 3 Всего: 16 |
^____^
|
|||
|
||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Нет, я говорил про другое. Хотя всё таки это событие не поможет, оно не срабатывает.
Надо твою функцию запустить в отдельном потоке, для этого лучше всего подойдёт BackgroundWorker. (в цикле вызывать Application.DoEvents() плохая идея, т.к. бессмысленная нагрузка на проц) -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |