LINUX.ORG.RU

История изменений

Исправление some-body, (текущая версия) :

deleteLater() для мембера по значению - причина твоего краша.

moveToThread - это правильное использование многопоточности в Qt. Но в этом случае перемещаемые объекты должны быть «одноразовыми». Т.е. создал объект без парента, переместил его в тред, и через QueuedConnection вызываешь его слот, который и будет работать в этом потоке. По завершению слота грохаешь объект (можно deleteLater() у this вызвать). Но умирать должен именно объект, а не тред.

Исходная версия some-body, :

deleteLater() для мембера по значению - причина твоего краша.

moveToThread - это правильное использование многопоточности в Qt. Но в этом случае перемещаемые объекты должны быть «одноразовыми». Т.е. создал объект без парента, переместил его в тред, и через QueuedConnection вызываешь его слот, который и будет работать в этом потоке. По завершению слота грохаешь объект (можно deleteLater() у this) вызывать. Но умирать должен именно объект, а не тред.