QtConcurrent - Access violation
Verfasst: 13. Juli 2008 13:57
Ich würde gerne per QtConcurrent Bilder in seperaten Threads laden und skalieren. Da ich auch das Laden auslagern will hab ich mir eine Mini-Klasse gebastelt die den Pfad (QString) + ein QImage haltet. Im GUI-Thread setze ich nun den Pfad und rufe dann per QtConcurrent::map meine Funktion auf die das Bild laden soll.
Jetzt habe ich aber das Problem, dass ich scheinbar keinen Zugriff auf den Pfad (QString) habe. Sobald ich das Ding in meiner Funktion (die ja in einem seperaten Thread läuft) angreifen will bekomme ich eine Access violation. Einzig das QImage meckert nicht. Auch QFileInfo habe ich schon probiert -> gleiches Problem.
und
und
Weiss jemand was ich falsch mache? Geht das überhaupt so wie ich mir das vorstelle?
Jetzt habe ich aber das Problem, dass ich scheinbar keinen Zugriff auf den Pfad (QString) habe. Sobald ich das Ding in meiner Funktion (die ja in einem seperaten Thread läuft) angreifen will bekomme ich eine Access violation. Einzig das QImage meckert nicht. Auch QFileInfo habe ich schon probiert -> gleiches Problem.
Code: Alles auswählen
class LoaderItemImage
{
public:
LoaderItemImage(QString path);
~LoaderItemImage();
public:
QImage image;
QString path;
};
Code: Alles auswählen
QList<LoaderItemImage> test;
LoaderItemImage *image1 = new LoaderItemImage("c:\test.jpg");
LoaderItemImage *image2 = new LoaderItemImage("c:\test.jpg");
test.append(*image1);
test.append(*image2);
QFuture<void> computation = QtConcurrent::map(test, loadImage);
Code: Alles auswählen
void loadImage(LoaderItemImage & image)
{
qDebug() << image.path;
}
Weiss jemand was ich falsch mache? Geht das überhaupt so wie ich mir das vorstelle?