Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.023 c
1-15546
3333333333
2003-01-28 14:26
2003.02.06
Выделение пункта в ЛистБоксе


4-16002
Chubais
2002-12-24 16:23
2003.02.06
Как ограничить клиентскую область главной MDI формы?


1-15741
R
2003-01-27 03:17
2003.02.06
Как извлечь иконку из файла причем любого и поместить ее на ..


1-15618
ignis
2003-01-29 11:48
2003.02.06
Проблема запуска программы под Windows 2000 и XP


14-15843
Ежик
2003-01-22 16:03
2003.02.06
У меня депресняк....