Как сделать чтоб программа отражала ход выполнения процесса?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jiura
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 16.02.2002 (Сб) 0:02
Откуда: Russia

Как сделать чтоб программа отражала ход выполнения процесса?

Сообщение jiura » 05.12.2006 (Вт) 15:33

Доброе время суток. Пишу программу - она выполняет длинный процесс, связанный с писком в другом приложении данных. Процесс может продолжаться 1-2мин. За это времяокно как бы подвисает.И нажать ничего нельзя - вроде как зависла. Надо сделать так чтобы пользователь видел ходвы полнения операций (например на progressBar-е) и при желании мог остановить выполнение программы. Как это сдеать?
------------------------
Тихо! Пока админы не узнали!

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1668
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 05.12.2006 (Вт) 15:39

DoEvents. Где-нть в цикле вставь. Вроде всё ок.
А чтобы можно было остановить.... Чтобы остановить, заведи булевую переменную (например, b), а потом в цикле:
Код: Выделить всё

DoEvents
If b=False Then Exit Do (или Next)

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: Как сделать чтоб программа отражала ход выполнения проце

Сообщение Nicky » 05.12.2006 (Вт) 16:18

[OFFTOP]
jiura писал(а):...Пишу программу - она выполняет длинный процесс, связанный с писком в другом приложении...

Т.е. пока другое приложение пищит, твоя программа затыкает уши и ждет?

MAXIS
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 10.11.2006 (Пт) 3:31

Сообщение MAXIS » 08.12.2006 (Пт) 13:24

А еще можно запускать подпрограмму обработки данных в потоке, правда результат необходимо синхронизировать с помощью таймера. Потоки плохо работают в 6 ВБэйсике, для работы с потоками рекомендую ставить 5.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 08.12.2006 (Пт) 13:28

MAXIS
Чего?? Для работы с потоками ставь VB5! ^^))) А может уйти дальше в архаизмы?
Для работы с потоками нужен Vb.net или VB 2005.

Автор: Если приложение серьезное, то имеет смысл юзать потоки. А если нет, то DoEvents самое то.
----

MAXIS
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 10.11.2006 (Пт) 3:31

Сообщение MAXIS » 08.12.2006 (Пт) 13:37

Maitris
Кто к чему привык. На платформу .НЕТ не охота перелазить, 2005 так и не удосужился приобрести, а потоки реально работают в пятом ВБэйсике. И если человек просит помощи в вопросе на данной ветке форума, то рекомендовать .NET особого смысла нет.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.12.2006 (Пт) 15:25

MAXIS писал(а):Кто к чему привык. На платформу .НЕТ не охота перелазить, 2005 так и не удосужился приобрести, а потоки реально работают в пятом ВБэйсике. И если человек просит помощи в вопросе на данной ветке форума, то рекомендовать .NET особого смысла нет.
Потоки в VB5 не "реально работают", а скорее, создают видимость реальной работы :-)
См. http://bbs.vbstreets.ru/viewtopic.php?t=25514 -- четвёртый абзац полностью применим к VB5, хотя там явно этого и не отмечено. Ещё там Twister дал ссылку на дурной машинный перевод статьи Аппельмана о многопоточности в VB5.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 18

    TopList  
cron