Завершить выполнение длительной процедуры из другой Sub.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

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

Завершить выполнение длительной процедуры из другой Sub.

Сообщение Maitris » 20.12.2005 (Вт) 18:40

Описание:
Каждый раз, при определенном событии, мне нужно вызывать довольно длительную процедуру (0.3-0.5 сек. на P4 2.8.).
Если вызвать ее повторно до завершения (что вполне вероятный вариант), то она срабатывает некорректно.

Вопрос:
Как досрочно завершить один sub из другого sub? Например при нажатии на button. Думаю надо юзать Threading, но о нем имею мало представления. Есть ли альтернатива?

Вопрос-2:
Научите юзать threading. По-моему, в разделе тема свежа :)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 20.12.2005 (Вт) 19:07

1. Для предотвращения повторного запуска процедуры, устанавливай флаг в True при входе в нее и проверяй его значений. если при входе в процедуру он уже установлен, то сразу же и выходим. Естественно в конце работы процедуры флаг надо сбросить.

2. Чтобы завершить длительную процедуру из другой опять же можно установить флаг и периодически (если это возможно) проверять его значение. если он установлен, то выходим.

3. Насчет потоков. в справке вроде неплохо все объяснено... хотя может это мне так кажется %)
Весь мир матрица, а мы в нем потоки байтов!

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

Сообщение Maitris » 21.12.2005 (Ср) 13:20

!Viper!, вариант с флагом не подошел в данном случае, ну а тема в msdn действительно оказалась very simple.
----

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.12.2005 (Пт) 12:24

Maitris писал(а):!Viper!, вариант с флагом не подошел в данном случае.

флаг не подошел для предотвращения повторного запуска или для закрытия процедуры из другой процедуры?
Весь мир матрица, а мы в нем потоки байтов!

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

Сообщение Maitris » 23.12.2005 (Пт) 17:19

Понимаешь, мне нужно именно запустить новую, а для этого завершить старую. И скорость в данном случае имеет ключевое значение, т.е. проверять на флаг внутри ее циклов нет возможности.
----

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.12.2005 (Пт) 18:31

мож код покажешь? посмотрим, подумаем...
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList  
cron