запуск несколько обработок по одной кнопке

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
чайничек
Сообщения: 3
Зарегистрирован: 15 июн 2004, 12:11

Как запустить выполнение нескольких обработок одновременно по нажатию одной кнопки?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Если я правильно понял вопрос, :) то можно.

Пример:
Положим на форму кнопку и горизонтальную полосу прокрутки с Max=20
На кнопку напишем обработчик

Код: Выделить всё

Private Sub Command1_Click()
  HScroll1.Value = HScroll1.Value + 1
  For i = 1 To 100000: DoEvents: Next
  HScroll1.Value = HScroll1.Value - 1
End Sub
Время выполнения обработчика занимает не менее нескольких секунд, однако на кнопку можно нажимать гораздо чаще. При этом Command1_Click выполняется как бы в несколько потоков. Секрет - использование DoEvents. Если убрать DoEvents, то программа будет как бы "зависать на несколько секунд пока не обрабтается одно нажатие.
чайничек
Сообщения: 3
Зарегистрирован: 15 июн 2004, 12:11

смысл немного другой: нажимаем кнопку один раз, а запускается 4 процесса.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Для поддержки многопоточности в VB нужно использовать исключительно WINApi
Нарыл пример http://www.codenet.ru/progr/vbasic/multi.php
Ответить