Currently, we cannot schedule C# job from other than main thread. I was asked to ask you whether this feature could be implemented (edit: but we do not need to schedule jobs from a job, only from a different non-job, non-main-Unity threads) in order to simplify migration from custom (managed) job system to C# job system. Or is there some supported way to do that? Edit: see end of this post for solution. Edit (more details about the problem): For clarification: I do not want to schedule job from a job, but I want to schedule job from a thread which is not job thread and which is not Unity main thread. See my post bellow for code example. So my use-case is: Main thread: start separate thread for an Operation Separate thread, executing Operation: Do work which requires managed code, so it cannot be implemented as a job. Do work which doesn't require managed code, so it can be implemented as a job. But currently, I cannot schedule job from this thread, because it's not main Unity thread, even if it's not job thread. Do another work which requires managed code, so it cannot be implemented as a job. Notes: This document explains why scheduling job from a job is a problem and not supported. One of the reasons is determinism (which is IMHO extremely needed for many kinds of games, so I do not argue with that) and deadlocks (which is also huge problem). So my suggestion is: job can be scheduled from any thread which is not job thread. The job can be completed only in this thread and can depend only on jobs which are scheduled from same thread. This way it's like each thread has it's own job system, but sharing actual threads for the job execution and - as far as jobs are concerned - determinism is preserved and deadlocks should be avoided. Edit (solution): Scheduling jobs from other threads is not correct solution. The correct solution is to divide the task into sub-tasks, each represented either by managed task (standard class) or job (structure deriving from IJob or similar), then schedule them and use C# job dependency system to assure that each sub-task is executed when previous one is finished. This thread discusses how to execute managed code from a job.