Вниз
Скачать: CL | DM;

udp и Tthread   Найти похожие ветки 

← →
s22_shura   (2002-12-15 19:47) [0]

Доброго Вам времени суток!
Вопрос в следующем. Можно ли вынести в отдельный поток (TThread) часть программы, отвечающей за получение UDP сообщений и складирование их в какой то список. И назначить этому потоку максимально возможный приоритет.
Сомневаюсь потому, что, на сколько я понимаю в поток имеет смысл (да и просто только и можно) выносить законченные операции (последовательности команд). А тут получается что в конструкторе потока бкдет создаваться UDP сокет (TNMUDP). В обработчик ondatarecived , я вписываю занесение сообщения в очередь. НО что же тогда писать в методе Execute потока? Ведь поток по сути получается всё время ждёт прихода сообщений, а это уже не поток вроде :(
Если кто то может предложить способ, как повысить приоретет работы UDP, то пожалуйста помогите.
С уважением Shura. s22_shura@mail.ru


← →
Sha ©   (2002-12-15 20:00) [1]

1. Вынести можно. Многие так и делают.
2. Но не надо использовать TNMUDP. Писать придется самому.
3. Даже с высоким приоритетом есть проблемы. Из-за нехватки процессорного времени сетевому драйверу в Win98 теряются датаграммы.


← →
Digitman ©   (2002-12-16 09:02) [2]


> В обработчик ondatarecived , я вписываю занесение сообщения
> в очередь. НО что же тогда писать в методе Execute потока?


Как это что ? В Execute() из очереди последовательно выбираются сообщения и обрабатываются !


> Ведь поток по сути получается всё время ждёт прихода сообщений, а это уже не поток вроде


То, что поток чего-то "ждет" - это нормально. Важно чтобы он ждал "правильно", с использованием сист.объектов синхронизации, не отнимая при этом временных ресурсов процесса в целом.

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



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
14-15907
ledzzz
2003-01-20 16:38
2003.02.06
Fastreport 2.47


7-15970
volodya_
2002-12-02 11:09
2003.02.06
Нужно отключить левую кнопку на мышке


14-15894
kronprince
2003-01-20 12:42
2003.02.06
Кто-нибудь делал свой транспорт вместо BSS


1-15596
kosmos
2003-01-29 01:47
2003.02.06
помогите кто может, не допущен к зачету(1-ый курс)


1-15663
Savik
2003-01-29 17:49
2003.02.06
Автоосвобождение динамического массива




   Наверх