使用了qmutex...
谢谢楼上的各位了,问题还是没解决
估计跟windows和linux建立文件的方式有关系吧。。。
补充一下问题
QFile *file=new QFile(......);
file.open(QIODevice::Append);
void PieceThread::slotReadReady()
{
while(reply!=NULL&&!pauseFlag&&!reply->atEnd())
{
QMutexLocker locker(&mutex);
file->seek(workingPos);
workingPos+=file->write(reply->read(4096)); //调试(F5)就会出错,运行不错 很奇怪
}
}
这是下载写数据的模块
windows下工作,下下来的文件(如MP3)数据顺序是对的
linux下工作,下下来的文件数据顺序就是乱的(初步断定是数据接收的顺序,而没有按照seek的位置来写文件)
最后一点题外的:
在我注释的那一行总是出现Segmentation_fault(debug模式下更频繁),可以肯定的是我的指针不是空指针, file和reply在调试的局部变量窗口都有合法的地址值,很郁闷啊!