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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.033 c
1-1091702482
Aleksandr.
2004-08-05 14:41
2004.08.22
Как переделать код расчета CRC32?


1-1092045729
Jiuraasdasd
2004-08-09 14:02
2004.08.22
Как програмно скопировать файл из 1 каталога в другой?


14-1091535313
MGWarlock
2004-08-03 16:15
2004.08.22
I need help! Помогите поставить WinXP.


1-1092048772
}|{yk
2004-08-09 14:52
2004.08.22
AV при Destroy


4-1089188971
Анатолий
2004-07-07 12:29
2004.08.22
Програмно отключить LPT





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