crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 28.3.2024, 19:30