Главная страница
    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.042 c
1-1107855373
_Тима
2005-02-08 12:36
2005.02.20
Автоматическое исправление имен в редакторе кода


1-1107366366
td
2005-02-02 20:46
2005.02.20
access violation in module IDPDX32.DLL


6-1102702991
Winni
2004-12-10 21:23
2005.02.20
Просмотр FTP-клиентом папок и файлов на своем компе.


3-1106207476
Duka
2005-01-20 10:51
2005.02.20
Структура базы cds


9-1100363056
Creep
2004-11-13 19:24
2005.02.20
Округления GLFloat





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