Eric Domazlicky wrote:
I am developing a tiling application and I was hoping to up the speed a bit by doing some multithreading. What I want to do is start each of 3 ReadRaster calls in seperate threads (using BeginInvoke delegates), then wait for them to complete and build my RGB image (using EndInvoke). I am using the C# wrapper to the GDAL library. This multithreaded approach is showing clear signs of race conditions, with some of the channels not appearing, random crashes etc. If I ensure each thread completes before I go on to read the next Raster Band it works fine. Is there anyway to make ReadRaster thread-safe? Maybe by disabling caching which I suspect is the problem.
Eric, GDAL is intended to support multi-threading for the case where each thread is accessing a distinct dataset object. It is certainly not safe to have more than one thread accessing a single dataset object at the same time. If nothing else, there is generally only one underlying FILE * for accessing the physical file. Best regards, -- ---------------------------------------+-------------------------------------- I set the clouds in motion - turn up | Frank Warmerdam, [email protected] light and sound - activate the windows | http://pobox.com/~warmerdam and watch the world go round - Rush | Geospatial Programmer for Rent _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
