Ejemplo n.º 1
0
        public void ScheduleLongTask(TaskSet task, uint setSize, uint minRange, IntPtr arguments)
        {
            if (setSize == 0 || minRange == 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            Native.enkiAddTaskSetToPipeMinRange(nativeScheduler, task, arguments, setSize, minRange);
        }
Ejemplo n.º 2
0
        public TaskSet CreateTask(TaskExecuteRange taskFunction)
        {
            TaskSet task = Native.enkiCreateTaskSet(nativeScheduler, taskFunction);

            if (!task.IsCreated)
            {
                throw new InvalidOperationException("TaskSet creation failed");
            }

            return(task);
        }
Ejemplo n.º 3
0
 internal static extern void enkiWaitForTaskSet(IntPtr scheduler, TaskSet task);
Ejemplo n.º 4
0
 internal static extern int enkiIsTaskSetComplete(IntPtr scheduler, TaskSet task);
Ejemplo n.º 5
0
 internal static extern void enkiAddTaskSetToPipeMinRange(IntPtr scheduler, TaskSet task, IntPtr arguments, uint setSize, uint minRange);
Ejemplo n.º 6
0
 public void WaitForTask(TaskSet task)
 {
     Native.enkiWaitForTaskSet(nativeScheduler, task);
 }
Ejemplo n.º 7
0
 public bool CheckTaskCompletion(TaskSet task)
 {
     return(Native.enkiIsTaskSetComplete(nativeScheduler, task) == 1);
 }
Ejemplo n.º 8
0
 public void ScheduleLongTask(TaskSet task, uint setSize = 1, uint minRange = 1)
 {
     ScheduleLongTask(task, setSize, minRange, IntPtr.Zero);
 }
Ejemplo n.º 9
0
 public void ScheduleTask(TaskSet task, uint setSize = 1)
 {
     ScheduleTask(task, setSize, IntPtr.Zero);
 }
Ejemplo n.º 10
0
        public void DeleteTask(ref TaskSet task)
        {
            Native.enkiDeleteTaskSet(task.pointer);

            task.pointer = IntPtr.Zero;
        }