![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Dufe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 23.3.2005 Репутация: нет Всего: нет |
Есть процедура (ресурсоёмкая), которая выполняется как бы по таймеру. При нажатии на кнопку необходимо выполнить другую процедуру. В этоот момент они конфликтуют. (Нет доступа к памяти...) Использование булевской переменной не катит. Есть ли способ выставить запросы на прерывания или что-то подобное?
А ещё лучше как-то определить конец процедуры и вставить следом отложенную, пришедшую от кнопки. |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
убери ее из таймера, засунь в поток, и проверяй пока поток жив - она выполняется.
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Dufe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 23.3.2005 Репутация: нет Всего: нет |
Это видеопоток. Я обрабатываю в реальном времени его. Надо, чтобы нажатие на кнопку происходило между приходящими кадрами, которые обрабатываются моей процедурой.
|
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
так трудно сказать. привиди кусок кода где у тебя происходит "обработка" видеопотока
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Dufe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 23.3.2005 Репутация: нет Всего: нет |
Я не могу его привести. Работаю с DirectShow, который создаёт поток. И по событию на приход нового кадра я его обрабатываю.
|
|||
|
||||
| Dufe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 23.3.2005 Репутация: нет Всего: нет |
Неужели нет способа впихнуть действие сразу после окончания процедуры? Смысл в том, что, например по таймеру используется переменная. А при нажатии на кнопку она же должна использоваться. Появляется ошибка доступа к памяти- логично.
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Используй критические секции при доступе к этой переменной...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| z-END |
|
||||||||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
и никакой ошибки в доступе к памяти нет и быть не может т.к. приложение использует 1 (один) поток и все сообщения обрабатываются по очереди. т.е. если в тело процедуры нажатия на педаль поставить такой код:
Если же используются потоки, а не "как-бы таймер" тогда при доступе к данным из одного потока(например приложения) к другому нужна синхронизация см. пост - p0s0l -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
||||||||
|
|||||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |