Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
4-1103890085
serguar
2004-12-24 15:08
2005.02.20
запись в реестр Windows 2K под простым юзером


1-1107782347
BillyJeans
2005-02-07 16:19
2005.02.20
ScanLine и Canvas формы...


14-1106735738
kaZaNoVa
2005-01-26 13:35
2005.02.20
Задержка пакетов, или локальное моделирование модемного интернета


1-1107091565
GrayZeeCat
2005-01-30 16:26
2005.02.20
Как научить консоль говорить по русски в XP?


14-1107054028
Думкин
2005-01-30 06:00
2005.02.20
С Днем рождения! 30 января





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский