Главная страница
    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.041 c
14-1106744167
Cosinus
2005-01-26 15:56
2005.02.20
Вылетел комп с синим экраном и каким то непонятным сообщением...


4-1104321154
TankMan
2004-12-29 14:52
2005.02.20
Вот почему не работает WMI при установке винды?


3-1106072020
s_ilnar
2005-01-18 21:13
2005.02.20
Обработка 3000 xml файлов


3-1106220984
Layner
2005-01-20 14:36
2005.02.20
Разделители дроби в MSSQL на сервере и разделитель на клиенте


11-1091790406
nester
2004-08-06 15:06
2005.02.20
Как сделать в TabControl чтобы стили XP не глючили?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский