crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Завершение потока при закрытии сетевого соединения.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Sam Дата 18.12.2007, 12:33
  Да ладно вам горячие финские парни, разобрался я! :)

Спасибо.
ViGOur Дата 18.12.2007, 11:49
  В данном случае это сигнал, я хотел сказать вообще, как решить проблему Sam'а, но так как я сделал Copy-Paste, то получилось немного не то. Ладно проехали...
QCasper Дата 18.12.2007, 11:29
 
Цитата(ViGOur @ 18.12.2007, 11:03) *
Цитата(QCasper @ 18.12.2007, 10:47) *
Интересно как это Вы собираетесь переопределить signal? Oo
это было Copy-Paste, потому так и получилось. :)


Что-то я не очень понимаю, если Вы хотите сказать, что имели ввиду SLOT destroyed, то хочу заметить, что ни у одного Qt класса (на момент версии 4.3.3) нет такого слота. По крайней мере по документации.
ViGOur Дата 18.12.2007, 11:03
 
Цитата(QCasper @ 18.12.2007, 10:47) *
Интересно как это Вы собираетесь переопределить signal? Oo
это было Copy-Paste, потому так и получилось. :)
QCasper Дата 18.12.2007, 10:47
 
Цитата(ViGOur @ 17.12.2007, 20:03) *
Хе-хе, забыл сказать, что нужно переопределить destroyed для потока и в нем вызывать deleteLater. :)

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

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

connect(pServer, SIGNAL(closed()), SLOT(deleteLater()));
ViGOur Дата 17.12.2007, 20:03
  Хе-хе, забыл сказать, что нужно переопределить destroyed для потока и в нем вызывать deleteLater. :)
Sam Дата 17.12.2007, 19:37
  Спасибо. А память освобождать как? :)
ViGOur Дата 17.12.2007, 18:22
  В классе твоего потока (конструкторе или методе, на выбор) делаешь:
connect( pConnection, SIGNAL(destroyed()), this, SLOT(destroyed()));

Где pConnection - указатель на соединение
Sam Дата 17.12.2007, 17:07
  У меня написан некий сервер, для каждого подключения, создается свой поток.
Как бы мне сделать так, чтобы при закрытии соединения не только завершать поток, но и освобождать память, которая была выделена динамически:
QThread *pthread=new QThread;
...
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 11:16