Главная страница
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.016 c
1-15729
Anton
2003-01-27 17:25
2003.02.06
Как сделать простенький невизуальный таймер


4-16006
Delphi5.01
2002-12-21 18:57
2003.02.06
MainMenu s Font


3-15463
oleon
2003-01-20 13:54
2003.02.06
Как при подключении передать серверу HOST_NAME?


6-15793
1g0r
2002-12-14 13:32
2003.02.06
Вопрос по стандартным TClient(Server)Socket-ам (ошибка 10054 WSAE


14-15893
Axel
2003-01-17 18:06
2003.02.06
. NET books