Ejemplo n.º 1
0
        public void ScheduleSimpleParallelForDefer_1()
        {
            NativeList <int>  a      = new NativeList <int>(SimpleParallelForDefer.N, Allocator.TempJob);
            NativeArray <int> b      = new NativeArray <int>(SimpleParallelForDefer.N, Allocator.TempJob);
            NativeArray <int> result = new NativeArray <int>(SimpleParallelForDefer.N, Allocator.TempJob);

            for (int i = 0; i < SimpleParallelForDefer.N; ++i)
            {
                a.Add(100 + i);
                b[i] = 200 + i;
            }

            SimpleParallelForDefer job = new SimpleParallelForDefer()
            {
                a = a, b = b, result = result
            };

            job.a      = a;
            job.b      = b;
            job.result = result;

            JobHandle handle = job.Schedule(a, 300);

            handle.Complete();

            for (int i = 0; i < SimpleParallelFor.N; ++i)
            {
                Assert.AreEqual(300 + i * 2, result[i]);
            }

            a.Dispose();
            b.Dispose();
            result.Dispose();
        }
Ejemplo n.º 2
0
        public unsafe void ScheduleSimpleParallelForDefer_2()
        {
            NativeList <int>  a      = new NativeList <int>(SimpleParallelForDefer.N, Allocator.TempJob);
            NativeArray <int> b      = new NativeArray <int>(SimpleParallelForDefer.N, Allocator.TempJob);
            NativeArray <int> result = new NativeArray <int>(SimpleParallelForDefer.N, Allocator.TempJob);

            for (int i = 0; i < SimpleParallelForDefer.N; ++i)
            {
                a.Add(100 + i);
                b[i] = 200 + i;
            }

            SimpleParallelForDefer job = new SimpleParallelForDefer()
            {
                a = a, b = b, result = result
            };

            job.a      = a;
            job.b      = b;
            job.result = result;

            var lengthValue = new NativeArray <int>(1, Allocator.TempJob);

            lengthValue[0] = SimpleParallelForDefer.N;

            JobHandle handle = job.Schedule((int *)lengthValue.GetUnsafePtr(), 300);

            handle.Complete();

            for (int i = 0; i < SimpleParallelFor.N; ++i)
            {
                Assert.AreEqual(300 + i * 2, result[i]);
            }

            a.Dispose();
            b.Dispose();
            result.Dispose();
            lengthValue.Dispose();
        }