Firstly, really impressed by RhinoCommon. Great work everybody who was involved with that!
I’m working on a project with a lot of heavy processing and large batches.
Mostly I’m working on grasshopper plugins in C#, being called from a grasshopper patch.
One node might take 5 minutes to execute.
I’ve been trying to thread some of the expensive functions, but always hit exceptions.
Curve.OffsetOnSurface will crash even if I guarantee that no 2 threads have simultaneous access to the same
Curve or the same
(crash is causeed by either corrupted output or an AccessViolation)
It seems the function shares some kind of state internally in Rhino which can’t be used concurrently in 2 threads.
Is there any information about which types of functions can be performed thread-safe and which ones can’t?