Yes. All NumXL function are thread-safe. You may invoke multiple NumXL functions from different threads, or have multiple threads concurrently invoke one function. To avoid log messages of the different threads getting mixed up, the thread unique identifier is stored alongside with the log message.