public void TestTempJobAllocationAndDisposal() { n.AllocateAndAutoDispose(ref array1, 10, Allocator.TempJob); n.AllocateAndAutoDispose(ref array2, 10, Allocator.TempJob); n.ProcessDisposables(new Unity.Jobs.JobHandle()); n.DisposeTempJobs(); Assert.Throws <InvalidOperationException>(array1.Dispose); Assert.Throws <InvalidOperationException>(array2.Dispose); }
protected sealed override void OnUpdate() { var jobHandle = new JobHandle(); try { foreach (var componentGroup in ComponentGroups) { jobHandle = JobHandle.CombineDependencies(componentGroup.GetDependency(), jobHandle); } jobHandle = OnUpdate(jobHandle); foreach (var componentGroup in ComponentGroups) { componentGroup.AddDependency(jobHandle); } } finally { nativeManager.DisposeTempJobs(); nativeManager.ProcessDisposables(jobHandle); } }