Использую так называемый QThreadPool
и закидываю в него указатель на QRunnable
. Такой код:
void QThreadPoolServer::incomingConnection(qintptr handle)
{
QSocketRunnable *runnable = new QSocketRunnable(handle);
this->thread_pool->start(runnable);
}
Нужно ли "ручками" очищать QRunnable
? Или метод QThreadPool::start()
сам всё сделает?
В справке:
If auto-deletion is enabled, QThreadPool
will automatically delete
this runnable after calling run();
otherwise, ownership remains with
the application programmer.
Что в переводе:
Если автоудаление включено (по умолчанию это именно так), то пул
потоков самостоятельно уничтожит объект QRunnable
после выхода
контекста выполнения из метода QRunnable::run()
. В обратном случае
ответственность за удаление объекта лежит на вызывающей стороне (на
разработчике приложения).
Предупреждение
Следует быть осторожным при использовании автоматического удаления объектов QRunnable
и связки QThreadPool::releaseThread()
/ QThreadPool::reserveThread()
. В отдельных случаях возможны утечки памяти.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно увеличить высоту строк в многострочном тексте QLabelНо, не нашел решения с QFont и QStyleSheets