Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Остановка выполнения цикла по кнопке / 8 сообщений из 8, страница 1 из 1
18.09.2006, 12:26
    #33993560
Notfrom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
Подскажите, как произвести остановку выполнения цикла по нажатию кнопки?
...
Рейтинг: 0 / 0
18.09.2006, 12:27
    #33993564
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
Notfrom N> Подскажите, как произвести остановку выполнения цикла по
N> нажатию кнопки?
Это в форум по дельфи
--
PS: Altera manu fert lapidem, panem ostentat altera
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18.09.2006, 17:57
    #33994895
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
Цикл нужно запустить в рабочей нити приложения или время от времени опрашивать очередь сообщений.
По нажатию кнопки нужно устанавливать значение некоторой глобальной переменной с модификатором volatile.
В цикле нужно регулярно проверять значение этой переменной и завершать цикл, когда её значение обозначит нажатие кнопки.
...
Рейтинг: 0 / 0
19.09.2006, 08:21
    #33995630
Notfrom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
Да, в Дельфи мне подсказали использовать ProcessMessages. А вот про volatiles я не понял. Для чего это, вроде работает и так?
...
Рейтинг: 0 / 0
19.09.2006, 12:12
    #33996327
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
для пущей подстраховки
...
Рейтинг: 0 / 0
20.09.2006, 10:50
    #33998832
andy55555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
Посмотрите функции _beginthreadex(...), WaitForSingleObject(...), и топики про события и критические секции, синхронизацию и пр, примеры по этому поводу, пример стандартной процедуры запуска рабочего потока, его синхронизации и остановки рабочего потока.
...
Рейтинг: 0 / 0
20.09.2006, 20:21
    #34001289
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
NotfromДа, в Дельфи мне подсказали использовать ProcessMessages. А вот про volatiles я не понял. Для чего это, вроде работает и так?

Оптимизатор C++ может на время выполнения процедуры разместить автоматическую переменную в регисте микропроцессора, тогда оператор

Код: plaintext
if(flag)...

будет обращаться не к области памяти переменной flag, а к регистру. Или вообще, сочтёт, что раз переменная flag в цикле не меняется, то её проверку можно делать только один раз до выполнения цикла.

volatile указывает компилятору, что значение переменной может измениться за пределами текущей функции, поэтому его нельзя кэшировать в регистрах и т.п..
...
Рейтинг: 0 / 0
21.09.2006, 09:04
    #34001823
a_s_d
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Остановка выполнения цикла по кнопке
GetAsyncKeyState
This function determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState.

SHORT GetAsyncKeyState(
int vKey );
Parameters
vKey
[in] Specifies one of 256 possible virtual-key codes. For more information, see Virtual-Key Codes.
You can use left- and right-distinguishing constants to specify certain keys. For more information about constants, see Remarks.

Return Values
If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down. The least significant bit is not valid in Windows CE, and should be ignored. GetAsyncKeyState returns the current key state even if a window in another thread or process currently has the keyboard focus.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Остановка выполнения цикла по кнопке / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]