I'm using the Java bindings if it matters. I have a heavily multi-threaded program and this is one of the bottlenecks that I have in a synchronization block. If I could remove the synchronization, it would improve speed a bit I believe, but I can't find any information whatsoever whether it's thread-safe or not, or how best to personally test for that.
The specific line would look something like:
FROM_WGS84.TransformPoint(coordinates, coordinates); where
FROM_WGS84 is a
CoordinateTransformation class created using
CoordinateTransformation.CreateCoordinateTransformation(), but with arguments supplied obviously.