|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.11.2011, 14:17 | #21 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Я не сразу понял, что поток пытается убить себя из метода который вызвал, но не закончил.
Поступил чуть проще, в stop просто посылал Terminate(На всякий), а в старт, без проверки на nil, создавал новый обьект. Кстати вопрос, ведь старый обьект не уничтожен, а на его место уже метит новый. Получается потеряв старый обьект(заменив новым), утекает память. Или утекать ничего не будет т.к. старый завершит свой код пойдёт лесом? Теперь другоя проблема вся в той же сфере. Вы говорили, что нужно сделать проверку на обрыв связи и реконнект. Хоть убей, перерыл весь idUDPServer - по нулям. Последний раз редактировалось Человек_Борща; 29.11.2011 в 14:33. |
29.11.2011, 16:00 | #22 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Итак, по порядку:
1. Метод Terminate не уничтожает поток и ничего не говорит вообще, если у вас в коде не делается проверка на булево свойство Terminated, например в цикле. Terminate устанавливает свойство Terminated в true, и всего то. 2. Создание нового экземпляра класса в деструкторе объекта и присвоение его той же самой переменной допустимо, ведь переменная это только 4хбайтный указатель на точку входа объекта, расположенного в куче. А уничтожаемый объект корректно завершит свое существование. Объект в памяти один физически, а вот переменных типа этого объекта, ссылающихся на него, может быть сколько угодно. И если уничтожить объект через одну переменную, то и остальные станут ссылаться вникуда. Так что тут у вас все нормально. 3. Я предпочитаю работать с библиотекой Synapse. Она полегче, стабильная, робит под Delphi 2009+ и бесплатна: http://synapse.ararat.cz/ Пасдоковскую документацию и примеры там же найдете. С Indy не сталкивался, потому придумывать не стану ничего.
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 29.11.2011 в 16:04. |
30.11.2011, 01:28 | #23 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
в синапсе не нашёл ничего связанного именно с UDP
|
30.11.2011, 09:18 | #24 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
http://www.webdelphi.ru/poisk/
Ищите по ключевому слову "Synapse". Лучшего блога я в сети не нашел.
"ковыряю изнутри" (с)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при закрытии потока(Tthread) посылать на форму код ответа или сообщение | Человек_Борща | Общие вопросы Delphi | 2 | 14.12.2010 21:19 |
Работа с TThread | pesi | Общие вопросы Delphi | 2 | 09.08.2010 14:12 |
TThread | Vladislav_I | Общие вопросы Delphi | 0 | 30.04.2010 19:47 |
Ошибка при OpenDialog.Execute | ymka2 | Общие вопросы Delphi | 10 | 27.11.2009 14:15 |
TThread и GUI | Freezer | Общие вопросы Delphi | 8 | 05.08.2009 11:50 |