Ejemplo n.º 1
0
 /// <summary>
 /// Process the specified task.  It will be processed either now,
 /// or queued to process on the thread pool.
 /// </summary>
 /// <param name="task">The task to process.</param>
 /// <param name="group">The group this task belongs to.</param>
 public void ProcessTask(IEngineTask task, TaskGroup group)
 {
     lock (this)
     {
         _activeTasks++;
     }
     if (group != null)
         group.TaskStarting();
     var item = new PoolItem(this, task, group);
     ThreadPool.QueueUserWorkItem(item.ThreadPoolCallback);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Create a new task group.
        /// </summary>
        /// <returns>The new task group.</returns>
        public TaskGroup CreateTaskGroup()
        {
            TaskGroup result;

            lock (this)
            {
                _currentTaskGroup++;
                result = new TaskGroup(_currentTaskGroup);
            }
            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Process the specified task.  It will be processed either now,
        /// or queued to process on the thread pool.
        /// </summary>
        /// <param name="task">The task to process.</param>
        /// <param name="group">The group this task belongs to.</param>
        public void ProcessTask(IEngineTask task, TaskGroup group)
        {
            lock (this)
            {
                _activeTasks++;
            }
            if (group != null)
            {
                group.TaskStarting();
            }
            var item = new PoolItem(this, task, group);

            ThreadPool.QueueUserWorkItem(item.ThreadPoolCallback);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Create a new task group.
 /// </summary>
 /// <returns>The new task group.</returns>
 public TaskGroup CreateTaskGroup()
 {
     TaskGroup result;
     lock (this)
     {
         _currentTaskGroup++;
         result = new TaskGroup(_currentTaskGroup);
     }
     return result;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Construct a pool item.
 /// </summary>
 /// <param name="owner">The owner of this task.</param>
 /// <param name="task">The task to execute.</param>
 /// <param name="group">The group that this task belongs to.</param>
 public PoolItem(EngineConcurrency owner, IEngineTask task, TaskGroup group)
 {
     _owner = owner;
     _task = task;
     _group = group;
 }
Ejemplo n.º 6
0
 public void ProcessTask(IEngineTask task, TaskGroup group)
 {
     lock (this)
     {
         this._x16f1ed41ac673568++;
         if (group != null)
         {
             group.TaskStarting();
             if (0 != 0)
             {
                 return;
             }
         }
     }
     PoolItem item = new PoolItem(this, task, group);
     ThreadPool.QueueUserWorkItem(new WaitCallback(item.ThreadPoolCallback));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Construct a pool item.
 /// </summary>
 /// <param name="owner">The owner of this task.</param>
 /// <param name="task">The task to execute.</param>
 /// <param name="group">The group that this task belongs to.</param>
 public PoolItem(EngineConcurrency owner, IEngineTask task, TaskGroup group)
 {
     _owner = owner;
     _task  = task;
     _group = group;
 }
Ejemplo n.º 8
0
 public PoolItem(EngineConcurrency owner, IEngineTask task, TaskGroup group)
 {
     this._x071bde1041617fce = owner;
     this._x801bd3a7d5412d70 = task;
     this._xe2c9497bf778cd2b = group;
 }