Exemple #1
0
        /// <summary>
        /// Create a new work item
        /// </summary>
        /// <param name="workItemsGroup">The WorkItemsGroup of this workitem</param>
        /// <param name="wigStartInfo">Work item group start information</param>
        /// <param name="callback">A callback to execute</param>
        /// <param name="state">
        /// The context object of the work item. Used for passing arguments to the work item.
        /// </param>
        /// <returns>Returns a work item</returns>
        public static WorkItem CreateWorkItem(
            IWorkItemsGroup workItemsGroup,
            WIGStartInfo wigStartInfo,
            WorkItemCallback callback,
            object state)
        {
            ValidateCallback(callback);

            WorkItemInfo workItemInfo = new WorkItemInfo();

            workItemInfo.UseCallerCallContext        = wigStartInfo.UseCallerCallContext;
            workItemInfo.UseCallerHttpContext        = wigStartInfo.UseCallerHttpContext;
            workItemInfo.PostExecuteWorkItemCallback = wigStartInfo.PostExecuteWorkItemCallback;
            workItemInfo.CallToPostExecute           = wigStartInfo.CallToPostExecute;
            workItemInfo.DisposeOfStateObjects       = wigStartInfo.DisposeOfStateObjects;
            workItemInfo.WorkItemPriority            = wigStartInfo.WorkItemPriority;

            WorkItem workItem = new WorkItem(
                workItemsGroup,
                workItemInfo,
                callback,
                state);

            return(workItem);
        }
Exemple #2
0
 /// <summary>
 /// Create a new work item
 /// </summary>
 /// <param name="workItemsGroup">The WorkItemsGroup of this workitem</param>
 /// <param name="wigStartInfo">Work item group start information</param>
 /// <param name="callback">A callback to execute</param>
 /// <returns>Returns a work item</returns>
 public static WorkItem CreateWorkItem(
     IWorkItemsGroup workItemsGroup,
     WIGStartInfo wigStartInfo,
     WorkItemCallback callback)
 {
     return CreateWorkItem(workItemsGroup, wigStartInfo, callback, null);
 }
Exemple #3
0
 /// <summary>
 /// Create a new work item
 /// </summary>
 /// <param name="workItemsGroup">The WorkItemsGroup of this workitem</param>
 /// <param name="wigStartInfo">Work item group start information</param>
 /// <param name="callback">A callback to execute</param>
 /// <returns>Returns a work item</returns>
 public static WorkItem CreateWorkItem(
     IWorkItemsGroup workItemsGroup,
     WIGStartInfo wigStartInfo,
     WorkItemCallback callback)
 {
     return(CreateWorkItem(workItemsGroup, wigStartInfo, callback, null));
 }
Exemple #4
0
        public WorkItemsGroup(
            SmartThreadPool stp,
            int concurrency,
            WIGStartInfo wigStartInfo)
        {
            if (concurrency <= 0)
            {
                throw new ArgumentOutOfRangeException(
                          "concurrency",
#if !(WindowsCE)
                          concurrency,
#endif
                          "concurrency must be greater than zero");
            }
            _stp                     = stp;
            _concurrency             = concurrency;
            _workItemsGroupStartInfo = new WIGStartInfo(wigStartInfo).AsReadOnly();
            _workItemsQueue          = new PriorityQueue();
            Name                     = "WorkItemsGroup";

            // The _workItemsInStpQueue gets the number of currently executing work items,
            // because once a work item is executing, it cannot be cancelled.
            _workItemsInStpQueue = _workItemsExecutingInStp;

            _isSuspended = _workItemsGroupStartInfo.StartSuspended;
        }
Exemple #5
0
 public WIGStartInfo(WIGStartInfo wigStartInfo)
 {
     _useCallerCallContext = wigStartInfo._useCallerCallContext;
     _useCallerHttpContext = wigStartInfo._useCallerHttpContext;
     _disposeOfStateObjects = wigStartInfo._disposeOfStateObjects;
     _callToPostExecute = wigStartInfo._callToPostExecute;
     _postExecuteWorkItemCallback = wigStartInfo._postExecuteWorkItemCallback;
     _workItemPriority = wigStartInfo._workItemPriority;
     _startSuspended = wigStartInfo._startSuspended;
     _fillStateWithArgs = wigStartInfo._fillStateWithArgs;
 }
Exemple #6
0
 public WIGStartInfo(WIGStartInfo wigStartInfo)
 {
     _useCallerCallContext        = wigStartInfo._useCallerCallContext;
     _useCallerHttpContext        = wigStartInfo._useCallerHttpContext;
     _disposeOfStateObjects       = wigStartInfo._disposeOfStateObjects;
     _callToPostExecute           = wigStartInfo._callToPostExecute;
     _postExecuteWorkItemCallback = wigStartInfo._postExecuteWorkItemCallback;
     _workItemPriority            = wigStartInfo._workItemPriority;
     _startSuspended    = wigStartInfo._startSuspended;
     _fillStateWithArgs = wigStartInfo._fillStateWithArgs;
 }
Exemple #7
0
        /// <summary>
        /// Create a new work item
        /// </summary>
        /// <param name="workItemsGroup">The work items group</param>
        /// <param name="wigStartInfo">Work item group start information</param>
        /// <param name="workItemInfo">Work item information</param>
        /// <param name="callback">A callback to execute</param>
        /// <param name="state">
        /// The context object of the work item. Used for passing arguments to the work item.
        /// </param>
        /// <returns>Returns a work item</returns>
        public static WorkItem CreateWorkItem(
            IWorkItemsGroup workItemsGroup,
            WIGStartInfo wigStartInfo,
            WorkItemInfo workItemInfo,
            WorkItemCallback callback,
            object state)
        {
            ValidateCallback(callback);
            ValidateCallback(workItemInfo.PostExecuteWorkItemCallback);

            WorkItem workItem = new WorkItem(
                workItemsGroup,
                new WorkItemInfo(workItemInfo),
                callback,
                state);

            return(workItem);
        }
Exemple #8
0
 public WIGStartInfoRO(WIGStartInfo wigStartInfoRO)
 {
     _wigStartInfoRO = wigStartInfoRO;
 }
Exemple #9
0
        public WorkItemsGroup(
            SmartThreadPool stp,
            int concurrency,
            WIGStartInfo wigStartInfo)
        {
            if (concurrency <= 0)
            {
                throw new ArgumentOutOfRangeException(
                    "concurrency",
            #if !(WindowsCE)
                    concurrency,
            #endif
                    "concurrency must be greater than zero");
            }
            _stp = stp;
            _concurrency = concurrency;
            _workItemsGroupStartInfo = new WIGStartInfo(wigStartInfo).AsReadOnly();
            _workItemsQueue = new PriorityQueue();
            Name = "WorkItemsGroup";

            // The _workItemsInStpQueue gets the number of currently executing work items,
            // because once a work item is executing, it cannot be cancelled.
            _workItemsInStpQueue = _workItemsExecutingInStp;

            _isSuspended = _workItemsGroupStartInfo.StartSuspended;
        }
Exemple #10
0
        /// <summary>
        /// Create a new work item
        /// </summary>
        /// <param name="workItemsGroup">The WorkItemsGroup of this workitem</param>
        /// <param name="wigStartInfo">Work item group start information</param>
        /// <param name="callback">A callback to execute</param>
        /// <param name="state">
        /// The context object of the work item. Used for passing arguments to the work item. 
        /// </param>
        /// <returns>Returns a work item</returns>
        public static WorkItem CreateWorkItem(
            IWorkItemsGroup workItemsGroup,
            WIGStartInfo wigStartInfo,
            WorkItemCallback callback,
            object state)
        {
            ValidateCallback(callback);

            WorkItemInfo workItemInfo = new WorkItemInfo();
            workItemInfo.UseCallerCallContext = wigStartInfo.UseCallerCallContext;
            workItemInfo.UseCallerHttpContext = wigStartInfo.UseCallerHttpContext;
            workItemInfo.PostExecuteWorkItemCallback = wigStartInfo.PostExecuteWorkItemCallback;
            workItemInfo.CallToPostExecute = wigStartInfo.CallToPostExecute;
            workItemInfo.DisposeOfStateObjects = wigStartInfo.DisposeOfStateObjects;
            workItemInfo.WorkItemPriority = wigStartInfo.WorkItemPriority;

            WorkItem workItem = new WorkItem(
                workItemsGroup,
                workItemInfo,
                callback,
                state);
            return workItem;
        }
Exemple #11
0
        /// <summary>
        /// Create a new work item
        /// </summary>
        /// <param name="workItemsGroup">The work items group</param>
        /// <param name="wigStartInfo">Work item group start information</param>
        /// <param name="workItemInfo">Work item information</param>
        /// <param name="callback">A callback to execute</param>
        /// <param name="state">
        /// The context object of the work item. Used for passing arguments to the work item. 
        /// </param>
        /// <returns>Returns a work item</returns>
        public static WorkItem CreateWorkItem(
            IWorkItemsGroup workItemsGroup,
            WIGStartInfo wigStartInfo,
            WorkItemInfo workItemInfo,
            WorkItemCallback callback,
            object state)
        {
            ValidateCallback(callback);
            ValidateCallback(workItemInfo.PostExecuteWorkItemCallback);

            WorkItem workItem = new WorkItem(
                workItemsGroup,
                new WorkItemInfo(workItemInfo),
                callback,
                state);

            return workItem;
        }
Exemple #12
0
 public WIGStartInfoRO(WIGStartInfo wigStartInfoRO)
 {
     _wigStartInfoRO = wigStartInfoRO;
 }