Why don\'t I see a significant speed increase when running concurrent Graphics.RotateTransform operations across multiple threads?
This example demonstrates the mar
I do not have a answer but some thoughts that may help:
The problem is that those GDI+ calls block per process (not per thread), so even though the threads are running in parallel, the calls to graphics....
cause other threads to block. Meaning it ends up processing nearly serially.
See various answers in the question below for workarounds, the top one suggesting creating separate processes. Looks like you might end up just creating a helper command line utility or something. You might even be able to get fancy hook up the stdin and stdout so you could pass the image to rotate and get back the new image with out IO operations.
Parallelizing GDI+ Image Resizing .net