Цитата(Сергей Борщ @ Mar 15 2011, 12:49)

А как вы думаете, для чего была введена функция-член SignalISR? Да, обязан. В документации об этом сказано.
В документации написано, что TEventFlag::SignalISR() "нельзя использовать вне кода обработчика прерываний", так я его и не использую вне обработчика. А вот про TEventFlag::Signal() не написано, что его нельзя использовать в обработчике прерывания.
Цитата
TEventFlag::Signal()
«сигналить». Процесс, который желает сообщить
посредством объекта TEventFlag другим процес-
сам о том, что то или иное событие произошло,
должен вызвать функцию Signal(). При этом все
процессы, ожидающие указанное событие, будут
переведены в состояние готовых к выполнению,
а управление получит самый приоритетный из
них (остальные в порядке очередности приорите-
тов);
А функция-член TEventFlag::SignalISR(), как написано, оптимизированный вариант для использования в прерываниях.
Цитата
TEventFlag::SignalISR()
вариант вышеописанной функции, оптимизиро-
ванный для использования в прерываниях (при
использовании способа передачи управления на
основе программного прерывания). Функция яв-
ляется встраиваемой и использует специальную
облегченную встраиваемую версию планировщи-
ка. Этот вариант нельзя использовать вне кода
обработчика прерываний.