Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Завершение потока при закрытии сетевого соединения.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Sam
У меня написан некий сервер, для каждого подключения, создается свой поток.
Как бы мне сделать так, чтобы при закрытии соединения не только завершать поток, но и освобождать память, которая была выделена динамически:
QThread *pthread=new QThread;
...
ViGOur
В классе твоего потока (конструкторе или методе, на выбор) делаешь:
connect( pConnection, SIGNAL(destroyed()), this, SLOT(destroyed()));

Где pConnection - указатель на соединение
Sam
Спасибо. А память освобождать как? :)
ViGOur
Хе-хе, забыл сказать, что нужно переопределить destroyed для потока и в нем вызывать deleteLater. :)
QCasper
Цитата(ViGOur @ 17.12.2007, 20:03) *
Хе-хе, забыл сказать, что нужно переопределить destroyed для потока и в нем вызывать deleteLater. :)

Интересно как это Вы собираетесь переопределить signal? Oo

Нужно просто по сигналу, который сигнализирует закрытие соединения, вызвать слот deleteLater() и всё.
Например, если в Вашем классе сервера при закрытии соединения выдаётся сигнал closed, то конструкция выглядит так:

connect(pServer, SIGNAL(closed()), SLOT(deleteLater()));
ViGOur
Цитата(QCasper @ 18.12.2007, 10:47) *
Интересно как это Вы собираетесь переопределить signal? Oo
это было Copy-Paste, потому так и получилось. :)
QCasper
Цитата(ViGOur @ 18.12.2007, 11:03) *
Цитата(QCasper @ 18.12.2007, 10:47) *
Интересно как это Вы собираетесь переопределить signal? Oo
это было Copy-Paste, потому так и получилось. :)


Что-то я не очень понимаю, если Вы хотите сказать, что имели ввиду SLOT destroyed, то хочу заметить, что ни у одного Qt класса (на момент версии 4.3.3) нет такого слота. По крайней мере по документации.
ViGOur
В данном случае это сигнал, я хотел сказать вообще, как решить проблему Sam'а, но так как я сделал Copy-Paste, то получилось немного не то. Ладно проехали...
Sam
Да ладно вам горячие финские парни, разобрался я! :)

Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.