При многопоточной загрузке в объекты QPixmap (методом load(...)) переодически возникали падения, может ли быть это связано с тем, что метод QPixmap::load(...) не потокобезопасен?
код примерно такой:
struct ScaledImageInfo
{
QString m_fileName;
QPixmap m_image;
};
class makeThumbnail
{
public:
typedef ScaledImageInfo result_type;
makeThumbnail(int w, int h)
:m_w(w)
,m_h(h)
{
}
~makeThumbnail()
{
}
public:
ScaledImageInfo operator()(QString fileName)
{
ScaledImageInfo sii;
sii.m_fileName = fileName;
if (sii.m_image.load(fileName))
{
sii.m_image = sii.m_image.scaled(m_w, m_h, Qt::KeepAspectRatio/*,
Qt::SmoothTransformation*/);
}
return sii;
}
private:
int m_w;
int m_h;
};
void proc()
{
QStringlist files;
...
QtConcurrent::mapped(files, makeThumbnail(128, 128));
...
}
Заменил QPixmap на QImage и падений пока не замечал...