/// <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); }
/// <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); }
/// <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); }
/// <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; }
/// <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; }
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)); }
public PoolItem(EngineConcurrency owner, IEngineTask task, TaskGroup group) { this._x071bde1041617fce = owner; this._x801bd3a7d5412d70 = task; this._xe2c9497bf778cd2b = group; }