All access to the Castle Game Engine API must happen from one and the same thread.
We address various threads use-cases by introducing instead asynchronous operations, which is a fancy way of saying that you still use engine from one thread, but you don’t need to wait (block) for some operations to finish, instead you get a callback when they are finished. Such asynchronous API is both easier to use and easier to implement.