I am working on a project which is not using the Unity Job System and so according to the documentation and samples I need to call NetworkDriver.ScheduleUpdate() and JobHandle.Complete() from a component Update() on each frame. Presumably this invokes the core processing loop in the net code to do IO and queue up events. There are two things I am unclear on that perhaps someone could help me with; Firstly since the Unity Transport package is designed to work with the job system it presumably has some thread safety built in. When *not* using the job system is it safe, or even recommended, to call schedule update and complete from a background thread in order to avoid adding to the scene render time? Additionally if those calls are to be made on the main thread would it be optimal to make them before or after popping available events from connections?