예제 #1
0
        public void RequestTask(Chunk chunk, ChunkTaskType taskType, ChunkTaskPriority priority)
        {
            var request = requestPool.Borrow();

            request.Initialize(chunk, taskType, priority);

            requests.Enqueue(request);
        }
예제 #2
0
        internal void Initialize(Chunk chunk, ChunkTaskType taskType, ChunkTaskPriority priority)
        {
            if (chunk == null) throw new ArgumentNullException("chunk");

            this.chunk = chunk;
            this.taskType = taskType;
            this.priority = priority;

            timestamp = TimeSpan.FromTicks(Environment.TickCount);
        }
예제 #3
0
        public void RegisterTask(ChunkTaskType taskType, ChunkTask task)
        {
            if (task == null)
            {
                throw new ArgumentNullException("task");
            }

            task.Initialize(this, taskCallbackMethod);
            tasks[taskType] = task;
        }
예제 #4
0
        internal void Initialize(Chunk chunk, ChunkTaskType taskType, ChunkTaskPriority priority)
        {
            if (chunk == null)
            {
                throw new ArgumentNullException("chunk");
            }

            this.chunk    = chunk;
            this.taskType = taskType;
            this.priority = priority;

            timestamp = TimeSpan.FromTicks(Environment.TickCount);
        }