1
我正在對從文件加載的一些圖像進行一些圖像處理。我有一個具有加載,執行和保存功能的類。我總是在串行主線程中加載並保存,但是我在不同的圖像上執行線程調用。如果我線程執行保存失敗,如果我沒有線程執行它的工作。我加載一張圖片,克隆它3次,然後對這些圖片進行修改並保存。正在保存的文件名是不一樣的,如加載的原始圖像線程操作之後保存GDI +位圖
這工作:
ProcessImage process1 = ProcessImage(L"IMG_1");
process1.Load();
process1.Execute();
process1.Save();
這不:在圖像::保存GdipSaveImageToFile
ProcessImage process1 = ProcessImage(L"IMG_1");
process1.Load();
thread t1(&ProcessImage::Execute, process1);
t1.join();
process1.Save(); //exception
例外:
讀取訪問衝突。 這是0xCCCCCCCC。
我保存功能如下:
void Save() {
CLSID pngClsid;
CLSIDFromString(L"{557CF406-1A04-11D3-9A73-0000F81EF32E}", &pngClsid);
destBright->Save(brightenOut.c_str(), &pngClsid); //exception
delete destBright;
//same again on 2 other Bitmaps
}
destBright是processImage來的私有成員是一個指向位圖。
謝謝。如果需要可以提供更多的代碼。