Re[4]: Про QObject::deleteLater()
От: m2user  
Дата: 10.10.25 10:38
Оценка:
M>>Т.е. из потока A вызывать delete можно? Но ведь, если объект выступает в роли sender`а (emitter`а), то он в этот момент может быть задействован из потока, в котором живет receiver.

QC>Это же то же самое, получатель и отправитель в разных потоках.


Я к тому, что критерий проблемности "вызов delete из потока, отличного от того, в котором живёт объект" — неверный для объекта, который может быть emitter`ом с QtQueuedConnection.
Т.е. для таких объектов вызов delete из любого потока будет небезопасным.

Возвращаяся к deleteLater. Ты пишешь, что
> deleteLater() — это метод QObject, который помечает объект для удаления. Удаление произойдет, когда управление вернется в цикл событий (event loop). Это безопаснее, потому что к моменту удаления все текущие события для этого объекта будут обработаны.

А что насчет событий, которые сгенерированы удаляемым объектом? deleteLater ждёт пока все подписчики их обработают?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.