For our MBS Xojo Plugins we add a thread pooling for Windows in version 20.4. Instead of having the plugin create threads if needed for doing work and reuse them if needed.
For version 20.5 we got a new class to control that: WinThreadPoolMBS
We go these four properties:
- StackCommit as Integer
- StackReserve as Integer
- ThreadMaximum as Integer
- ThreadMinimum as Integer
The default stack size is 1 MB with a grow rate of 4 KB. Thread minimum and maximum is not limited, so Windows can decide based on CPU core count and load.
If you don’t use the class, you get the default behavior: a shared thread pool for the whole process. This may also be used by plugins from other vendors.
But if you use this class, we create a thread pool for our MBS Plugin functions and you can configure how much we use it. In case you use this, please initialize this early and keep the object around, e.g. put in a property of app or a module.
Please try the current pre-release version of the plugin to see how it works for you.