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

Вниз

Как запустить программу с высоким приоритетом?   Найти похожие ветки 

 
sdw_syscoder   (2004-08-09 20:02) [0]

Как запустить программу с высоким приоритетом?


 
Мастер ©   (2004-08-09 20:06) [1]

SetThreadPriority ?


 
sdw_syscoder   (2004-08-09 20:21) [2]

Чё та я не врубаюсь, примерчик можно?


 
Мастер ©   (2004-08-09 20:35) [3]

http://delphimaster.net/view/4-1091280137/


 
Mim1 ©   (2004-08-09 21:19) [4]

   CreateProcess(nil,"notepad",nil,nil,false,HIGH_PRIORITY_CLASS,nil,nil,si,pi);


 
Ihor Osov'yak ©   (2004-08-09 23:07) [5]

имхо, безполезное это занятие..


 
GuAV ©   (2004-08-09 23:12) [6]


> имхо, безполезное это занятие..

Почему (никогда такое не делал, но всё же) ?


 
GanibalLector ©   (2004-08-09 23:15) [7]

> имхо, безполезное это занятие..
Очень даже полезное,когда например работаешь с ком-портом и одновременно запускаешь посмотреть пару фильмов.


 
GuAV ©   (2004-08-09 23:20) [8]


> запускаешь посмотреть пару фильмов.

как, что, одновременно? хм...


 
Ihor Osov'yak ©   (2004-08-09 23:25) [9]

2 [7] GanibalLector ©   (09.08.04 23:15)

Значит топорно работаете с ком портом.

2 [6] GuAV ©   (09.08.04 23:12)

Потому что это решение не гарантирует получение достаточных ресурсов процессора и не гарантирует, что квант времени не будет прерываться другими процессами или системой. Иногда может и есть смысл поднимать приоритет на короткие промежутки времени, если есть уверенность что ресурсов процессора все же хватит  в данный момент времени. Здесь ключевое слово "может".


 
sdw_syscoder   (2004-08-10 00:11) [10]

> GanibalLector ©   (09.08.04 23:15) [7]

Во-во, на счёт порта это ты правильно речь толкнул. Речь даже ни о фильмах, а как только диспетчер памяти запускаешь во время чтения с порта или WinAMP врубает следующий трек, так и всё, кранты, прогу клинит (хорошо не виснет) и внешний девайс кричит об ошибке. Вот так! Поэтому когда работаешь с портом, приходиться ждать пока програ не отработает.

> Ihor Osov"yak ©   (09.08.04 23:25) [9]

ДА! Работаем в поте лица!
А на от прерывания кванта времени, это даже и приоритеты могут не спасти.


 
GanibalLector ©   (2004-08-10 00:51) [11]

Значит топорно работаете с ком портом
Ничего подобного.Вы сами то пробовали???Вот ,например,писал я одну прогу для программирования товаров кассового аппарата.Сам процесс занимает от 10сек до 5 мин. и откуда я знаю,что будет делать пользователь все это время???Может ему захочется посмотреть фильм или послушать музыку.И без повышения приоритета ИНОГДА бывает сбой,а с повышением их не бывает вообще.
И плюс [10]


 
Ihor Osov'yak ©   (2004-08-10 01:18) [12]

2 [11] GanibalLector ©   (10.08.04 00:51)

Вам покажется странным, но пробовал. И с ком-портом вообще, и с кассовым аппаратом в частности. Потребности в химии с приоритетами не возникало. И не особенно интересовало, что там пользователь в фоне запускал. Может потому, что я слышал о потоках, об ассинхронном вводе/выводе, немного в мсдн посмотрел раздел "Serial Communications Functions", всякие там SetCommMask, WaitCommEvent. И не влом было глянуть на "MTTTY sample application"... И не только посмотрел, а и немного использовал из того, что увидел..

Да, еще. Прог я не пишу. А вот программы иногда случается.


 
GanibalLector ©   (2004-08-10 01:29) [13]

Может потому, что я слышал о потоках, об ассинхронном вводе/выводе, немного в мсдн посмотрел раздел "Serial Communications Functions", всякие там SetCommMask, WaitCommEvent.
Вы удивитесь,но все функции вынесены в поток . Более того,писалось все на АПИ...как раз  "Serial Communications Functions".

А вот что такое  "MTTTY sample application" я не понял.

Да, еще. Прог я не пишу. А вот программы иногда случается.
Ну да ладно...хватит придираться.Вы же в почете.Мастер как ни как.


 
GanibalLector ©   (2004-08-10 01:31) [14]

. И с ком-портом вообще, и с кассовым аппаратом в частности
А с какими аппаратами,если не секрет???И можно ли взглянуть на это творчество???


 
Ihor Osov'yak ©   (2004-08-10 01:51) [15]

2 [13]
> Вы удивитесь,но все функции вынесены в поток
ну, это еще не достаточное условие
> Более того,писалось все на АПИ...как раз  "Serial Communications Functions".
более того, и этот факт дополнительно еще не стает достаточним условием..

Кстати, поищите CiaComport авторства Mestdagh Wilfried - вещь, вполне корректно работающая для большинства случаев, есть, правда, мелкие замечания п реализации, но я смотрел версию двух-или трехгодичной давности, сейчас, наверное, есть более новые.

> А вот что такое  "MTTTY sample application" я не понял.

http://msdn.microsoft.com/library/en-us/dnfiles/html/msdn_serial.asp
и в частности http://download.microsoft.com/download/4/7/2/47291d3a-b5b5-4447-8182-4b72b505a603/4918.exe

Семпл от майкрософта, демонстрирующий разные методы работы с ком-портом.
Очень поучительный семпл.
Также можно использовать как инструментарий для тестирования устройств, подсоединенных к ком-порту.

> хватит придираться.

Не давайте повода.

> Мастер как ни как

иногда бываю, моментами вспоминаю..

2 [14]
Кассовый реестратор "Мрия". Нельзя.


 
GanibalLector ©   (2004-08-10 01:57) [16]

2 Ihor Osov"yak ©  
Спасибо за   "MTTTY sample application" почитаю на досуге.

Кассовый реестратор "Мрия"
Таких нет и небыло.Может "Мария"???

А почему НЕТ???Вы стесняетесь???


 
Ihor Osov'yak ©   (2004-08-10 02:02) [17]

Да, Мария. Ошибся, давно это было, года четыре.
Нет - так как одно из условий выполнения проекта - нераспространение исходных кодов.


 
GanibalLector ©   (2004-08-10 02:12) [18]

>Нет - так как одно из условий выполнения проекта - нераспространение исходных кодов.
Ну это Вы зря.Почему???Обьясню:
-существуют OLE для работы с этим аппаратом(поставляется разработчиком) и оно FREE
-вышло уже более 4 версий этого аппарата и естественно протоколы у всех разные
-да и вообще,я хотел посмотреть на то как Вы все это делали в потоке и почему не нужно поднимать приоритет.

Ну,не хотите ...как хотите.Жадный Вы какой-то.


 
Ihor Osov'yak ©   (2004-08-10 03:24) [19]

2 GanibalLector ©   (10.08.04 02:12) [18]

Давно это было. Оле тогда еще и не пахло, была только книжечка с описанием протокола. Да и исходники у заказчика остались - мое участие в том проекте было эпизодичным и я не считтал нужным хранить копию исходников у себя.
Но если мне память не изменяет - не исключаю, что в этом проекте использовался CiaComPort - так что вряд-ли что интересно там можно увидеть. А может и не CiaComPort - но действительно, у меня не осталось воспоминаний, что там были какие-то проблемы.. И в остальных проектах, где шла работа с портами - тоже не было особых проблем.. Во всяком случае с поднятием приоритета. Да и собственно какие там проблемы могут быть - ведь драйвер порта использует свои буффера, и приоритеты прикладных процессов драйвер в общем то до фени.. А если для ожидания прихода символа или завершения передачи использовать SetCommMask + WaitCommEvent то сторожевой поток в основном в режиме простоя будет - следовательно ему как бы приоритеты тоже не очень то существенный.. А основной поток тоже в основном будет находиться в режиме ожидания нотификационного сообщения  от сторожевого потока - то есть как бы ему высокий приоритет особо и не нужен.. А среагирует основной поток на нотификацию с некоторым опозданием - так собственно для этого случая буфера портов и предназначены.. Чтобы принять несколько символов от устройчтва, пока прикладное приложение со своей нотификацией и масками разбирается.
Естественно, весь вывод и ввод в ассихронном режиме. Можно, конечно, и синхронно, заюзав один дополнительный рабочий поток, но не знаю.. Тогда наверное можно без событий, но может возникнуть ситуация с нехваткой времени на подготовку и обработку данных. Ведь основное время поток будет умирать на операциях ввода-вывода. Конечно, можно подготовку-обработку вынести еще в один поток, но очень уж муторной будет синхронизация всего этого дела. Ассинхронный режим ввода вывода с использованием WaitCommEvent намного естественнее выглядит, да и проще в реализации.. И никаких повышенных приоритетов не требует..

А вот за инфу об оле спасибо - не исключаю, что этот дрефний софт придется модифицировать в обозримом будущем..


 
sdw_syscoder   (2004-08-10 08:14) [20]

Доброе утро!
В принципе проблема возникает ни в самом коде реализации ввода/вывода в порт, а в процедуре(вызывается через Synchronize), где происходит копирование из буфера порта в массив, а затем из массива копируется методом Assign(на этой строчке и возникает еxception), в другой массив. Ну это ладно, я уже грузил здесь народ по этому поводу. Попробую исправить сам.



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

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

Наверх




Память: 0.53 MB
Время: 0.048 c
6-1087837598
leonidus
2004-06-21 21:06
2004.08.22
Парсер на основе IE


4-1089205343
han_malign
2004-07-07 17:02
2004.08.22
Создание сервиса


3-1091159704
rus9
2004-07-30 07:55
2004.08.22
TQuery


11-1079561344
RTWolf
2004-03-18 01:09
2004.08.22
PopupMenu


1-1091793629
Sourse
2004-08-06 16:00
2004.08.22
Как перетаскивать файлы из проводника в программу