Switches execution to a background worker thread. You should not touch engine objects while in worker threads

Example:
await ts.WorkerThread();
var data = LoadFromDisk(); // Generic expensive function that would freeze the main thread
await ts.MainThread();     // Return to MainThread after our work is done so we can touch engine objects again

ApplyData(data);