![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
AV при обработке MM таймера.
@!!ex © (2007-08-30 15:22:00)
timerID:=timeSetEvent(100,0,@TimerProc,0,TIME_PERIODIC);
sleep(2000);
timeKillEvent(TimerID);
procedure TimerProc(utimerID,uMessage:uint; dwUser,dw1,dw2:Word);
begin
end;
Падает послепервого выполнения TimerProc.
Не понимаю почему.
@!!ex (2007-08-30 20:35:00) [1]> Кста, у тебя еще висит?
процесс? :)
Конечно висит, он по другому и не может в принципе, как никак он около 100 мегабайт запакованных данных должен считать и распаковать, а в некоторых случаях еще и распарсить.
Leonid Troyanovsky (2007-08-30 20:00:00) [2]
> @!!ex © (30.08.07 19:58) [11]
> Да ко всему можно
Хозяин - барин.
Кста, у тебя еще висит?
--
Regards, LVT.
@!!ex (2007-08-30 19:58:00) [3]> [9] Leonid Troyanovsky © (30.08.07 19:42)
Да ко всему можно, только надо помнить о совместном доступе, для этого и реализовали, например, симафоры.
Инс (2007-08-30 19:53:00) [4]
> [9] Leonid Troyanovsky © (30.08.07 19:42)
Вообще да, сейчас глянул, ужаснулся.
Leonid Troyanovsky (2007-08-30 19:42:00) [5]
> Инс © (30.08.07 18:53) [2]
> Только к VCL из TimerProc не нужно обращаться
Там, во-ще, много к чему нельзя обращаться.
В ограничениях явно перечислено к чему можно.
--
Regards, LVT.
@!!ex (2007-08-30 19:36:00) [6]> Я что-то не понимаю? Обычно доп потоки нужны чтобы осн.
> не висел, а тут наоборот…
ЛОЛ.
Разные бывают причины.
Инс (2007-08-30 19:33:00) [7]
> Обычно доп потоки нужны...
Где они только не нужны... То, что вы привели - лишь частный случай.
Kolan (2007-08-30 19:29:00) [8]> когда основной поток висит.
Я что-то не понимаю? Обычно доп потоки нужны чтобы осн. невисел, а тут наоборот
@!!ex (2007-08-30 19:23:00) [9]> [4] Инс © (30.08.07 19:07)
основная причина, по которой решил юзать таймер - отдельный поток. :)
Поскольку нужно выполнить некоторые действия, когда основной поток висит.
ПРавда уже обломилось, пришлось без таймера делать. :((
Инс (2007-08-30 19:07:00) [10]
> У меня нет VCL.
Тогда ладно, просто имейте в виду, вдруг вы не знаете (многие на эти грабли наступают) - тело функции таймера выполняется в отдельном потоке. Учтите это.
@!!ex (2007-08-30 19:04:00) [11]> [2] Инс © (30.08.07 18:53)
У меня нет VCL.
Инс (2007-08-30 18:53:00) [12]Только к VCL из TimerProc не нужно обращаться
@!!ex (2007-08-30 15:23:00) [13]Все понял.
Тупо забыл stdcall.