Главная страница
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
3-15499
Higs
2003-01-11 18:03
2003.02.06
Компонента SQLDirect


4-16010
demona
2002-12-21 13:46
2003.02.06
можно используя только winAPI (без доп. компонентов) отследить .


3-15448
Сергей Бушин
2002-12-29 05:48
2003.02.06
Обратная связь в DataSnap


7-15976
dimich1978
2002-11-29 11:32
2003.02.06
Мастера плиз, определение загруженности процессора


1-15616
TAN
2003-01-29 12:06
2003.02.06
замена символов