QtConcurrent - Access violation

Alles rund um die Programmierung mit Qt
Antworten
tomf
Beiträge: 12
Registriert: 24. Oktober 2007 19:07

QtConcurrent - Access violation

Beitrag von tomf »

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.

Code: Alles auswählen

class LoaderItemImage
{
public:
	LoaderItemImage(QString path);
	~LoaderItemImage();

public:
	QImage image;
	QString path;
};
und

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);
und

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?
tomf
Beiträge: 12
Registriert: 24. Oktober 2007 19:07

Beitrag von tomf »

Ok habs anders gelöst. Verwende nun ein mapped anstatt von map.
Antworten