Страница 1 из 1

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

Добавлено: 15 июн 2004, 13:54
чайничек
Как запустить выполнение нескольких обработок одновременно по нажатию одной кнопки?

Добавлено: 16 июн 2004, 00:55
Naeel Maqsudov
Если я правильно понял вопрос, :) то можно.

Пример:
Положим на форму кнопку и горизонтальную полосу прокрутки с 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, то программа будет как бы "зависать на несколько секунд пока не обрабтается одно нажатие.

Добавлено: 16 июн 2004, 05:49
чайничек
смысл немного другой: нажимаем кнопку один раз, а запускается 4 процесса.

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