Я пытаюсь передать большой файл неблокирующим образом, подключив bytesWritten
к моей функции sendNextBlock
.
void AsynchronousRetrieveCommand::start()
{
connect(socket(), SIGNAL(bytesWritten(qint64)), this, SLOT(sendNextBlock()));
sendNextBlock();
}
void AsynchronousRetrieveCommand::sendNextBlock()
{
socket->write(file->read(64*1024));
}
Я запускаю этот код на телефоне Symbian, и после передачи 5-6 мегабайт я получаю окно сообщения «Память заполнена» в телефоне и это сообщение в выводе отладки:
[Qt Message] CActiveScheduler::RunIfReady() returned error: -4
Я предполагаю, что это какая-то утечка памяти, но я не вижу, что ее вызывает в моем коде.
QFile::open
в первую очередь потерпит неудачу (и у меня есть проверки для этого) 16.12.2012