Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Процедура - прерывание... (Как в ДОСе)   Найти похожие ветки 

 
microprogs   (2005-01-06 16:59) [0]

HI.
Есть некоторая прога, в которой куча процедур делают разные вычисления...
Как написать процедуру, которая будет по какому-то событию прерывать выполнение всей программы, выполнять вычисления, и снова восстанавливать выполнение программы...
Например через каждые 18мс, но надо написать без использования Таймера, и потоков...

В досе я делал это через программирование прерываний...
А как сделать это на Дельфи без использования Таймера и потоков...

Это надо, чтобы данные с COM-порта обрабатывались моей прогой всегда, даже если какие-то процедуры очень дольго или бесконечно что-то делают, они должно тормозить, и дать выполнение процедуре-прерыванию! А потом опять возобновить работу...


 
GanibalLector ©   (2005-01-06 18:45) [1]

А чем же тебя потоки не устраивают???

> выполнение процедуре-прерыванию
Юморист,однако ;)


 
KSergey ©   (2005-01-07 08:29) [2]

На сколько понимаю, такого вот подхода (как в ДОС) в Win нет в принципе. Единственное где это вероятно возможно - драйвер. Впрочем, возможно он вам и нужен.


 
microprogs   (2005-01-07 10:16) [3]

>А чем же тебя потоки не устраивают???
А тем, что они иногда работают с большими задержками на старых тачках...
А проге надо через каждые 0~18мс получать данные с COM-порта!
А прога написанная под ДОС, через прерывание, работает без проблем на 486(ниже не тестировали, но тоже должна работать)...


 
Набережных С.   (2005-01-07 12:43) [4]

>microprogs

Только перед новым годом закончил:
Каждые 12 МСек на скорости 19200 принимает от устройства 12 байт, слегка обрабатывает и по результату некоторые пакеты сохраняет в файл. Все в одном потоке, работа с портом асинхронная. На Р2 450 МГц под W2Pro загрузка процессора 2..5% при самой частой записи в файл. На участках, когда записи не производится, загрузка вообще около нуля - диск медленный, с PIO. В твоем случае, вероятно, для обмена с портом следует использовать отдельный поток с повышенным приоритетом.

>>А чем же тебя потоки не устраивают???
>А тем, что они иногда работают с большими задержками на старых тачках...

Дело, видимо, в ОСи. Не следует использовать W9x. Как помнится, там на переключение тратится очень много времени. Да и многозадачность там не вполне вытесняющая:) На NT контексты переключаются многократно шустрее.



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1107108541
SergP
2005-01-30 21:09
2005.02.20
Что за приколы с Дельфями?


3-1106292019
sergg
2005-01-21 10:20
2005.02.20
Ошибка: В операции должен использоваться обновляемый запрос


14-1106557618
Nikolay M.
2005-01-24 12:06
2005.02.20
Интересный вид мошенничества


1-1093323585
Vilux
2004-08-24 08:59
2005.02.20
TTree и цвет текста


1-1107500122
Elena
2005-02-04 09:55
2005.02.20
Ошибка при работе программы, идет остановка, как при трасировке..