五个这样的线程,跑了一会经常崩溃,哪里有问题啊??
- #include "thread.h"
- File_Thread::File_Thread(QString filePath,QUrl fileUrl,qint64 start,qint64 end,QObject *parent) :
- _httpObj(0),
- _file(0)
- {
- this->_filePath = filePath;
- this->_fileUrl = fileUrl;
- this->_start = start;
- this->_end = end;
- this->_complete = false;
- }
- void File_Thread::run() {
- this->_httpObj = new QNetworkAccessManager;
- QNetworkRequest request;
- request.setUrl(this->_fileUrl);
- request.setRawHeader(QByteArray("Range"),QByteArray("bytes=0-100000"));
- request.setRawHeader(QByteArray("Cache-Control"), QByteArray("no-cache"));
- request.setRawHeader(QByteArray("Connection"), QByteArray("close"));
- this->_replyObj = this->_httpObj->get(request);
- this->_replyObj->setReadBufferSize(0);
- connect(this->_replyObj,SIGNAL(readyRead()),this,SLOT(slotReadyRead()));
- connect(this->_replyObj,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotError(QNetworkReply::NetworkError)));
- connect(this->_replyObj,SIGNAL(finished()),this,SLOT(quit()));
- this->exec();
- }
- void File_Thread::slotReadyRead() {
- QByteArray readContent = this->_replyObj->readAll();
- qDebug() << this->_start <<" : " <<readContent.size();
- }
- File_Thread::~File_Thread() {
- //qDebug() << this->_start << "end";
- if(this->_file) {
- this->_file->close();
- delete this->_file;
- }
- if(this->_httpObj) {
- delete this->_httpObj;
- }
- }