QC>delete — это стандартный оператор C++. Его можно безопасно использовать, только если вы абсолютно уверены, что объект в данный момент не используется и не находится в середине обработки события.
Чисто технически QObject может быть реализован так, что в обработчик события передается копия (shallow copy) со счётчиком ссылок.
На мой взгляд более естественный подход, чем QObject::deleteLater.
QC>Если объект "живет" в потоке A, а вы находитесь в потоке B, вы не можете удалить его с помощью delete. Это почти гарантированно приведет к крешу, потому что поток A может в этот момент обрабатывать событие для этого объекта.
QC>deleteLater() поставит задачу на удаление в цикл событий того потока, в котором "живет" объект, что является потокобезопасным.
Т.е. из потока A вызывать delete можно? Но ведь, если объект выступает в роли sender`а (emitter`а), то он в этот момент может быть задействован из потока, в котором живет receiver.
Posted via RSDN NNTP Server 2.1 beta