Завершение потока при закрытии сетевого соединения. |
Здравствуйте, гость ( Вход | Регистрация )
Завершение потока при закрытии сетевого соединения. |
Sam |
17.12.2007, 17:07
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 28.11.2007 Пользователь №: 28 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня написан некий сервер, для каждого подключения, создается свой поток.
Как бы мне сделать так, чтобы при закрытии соединения не только завершать поток, но и освобождать память, которая была выделена динамически:
|
|
|
ViGOur |
17.12.2007, 18:22
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
В классе твоего потока (конструкторе или методе, на выбор) делаешь:
Где pConnection - указатель на соединение |
|
|
Sam |
17.12.2007, 19:37
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 28.11.2007 Пользователь №: 28 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо. А память освобождать как?
|
|
|
ViGOur |
17.12.2007, 20:03
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Хе-хе, забыл сказать, что нужно переопределить destroyed для потока и в нем вызывать deleteLater.
|
|
|
QCasper |
18.12.2007, 10:47
Сообщение
#5
|
Студент Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: 1 |
Хе-хе, забыл сказать, что нужно переопределить destroyed для потока и в нем вызывать deleteLater. Интересно как это Вы собираетесь переопределить signal? Oo Нужно просто по сигналу, который сигнализирует закрытие соединения, вызвать слот deleteLater() и всё. Например, если в Вашем классе сервера при закрытии соединения выдаётся сигнал closed, то конструкция выглядит так:
|
|
|
ViGOur |
18.12.2007, 11:03
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
QCasper |
18.12.2007, 11:29
Сообщение
#7
|
Студент Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: 1 |
Интересно как это Вы собираетесь переопределить signal? Oo это было Copy-Paste, потому так и получилось. Что-то я не очень понимаю, если Вы хотите сказать, что имели ввиду SLOT destroyed, то хочу заметить, что ни у одного Qt класса (на момент версии 4.3.3) нет такого слота. По крайней мере по документации. Сообщение отредактировал QCasper - 18.12.2007, 11:30 |
|
|
ViGOur |
18.12.2007, 11:49
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
В данном случае это сигнал, я хотел сказать вообще, как решить проблему Sam'а, но так как я сделал Copy-Paste, то получилось немного не то. Ладно проехали...
|
|
|
Sam |
18.12.2007, 12:33
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 28.11.2007 Пользователь №: 28 Спасибо сказали: 0 раз(а) Репутация: 0 |
Да ладно вам горячие финские парни, разобрался я!
Спасибо. |
|
|
Текстовая версия | Сейчас: 28.3.2024, 20:13 |