Exemplo n.º 1
0
 /// <summary>
 ///   Create a new work item
 /// </summary>
 /// <param name = "wigStartInfo">Work item group start information</param>
 /// <param name = "callback">A callback to execute</param>
 /// <param name = "workItemPriority">The priority of the work item</param>
 /// <returns>Returns a work item</returns>
 public static WorkItem CreateWorkItem(
     IWorkItemsGroup workItemsGroup,
     WIGStartInfo wigStartInfo,
     WorkItemCallback callback,
     WorkItemPriority workItemPriority)
 {
     return CreateWorkItem(workItemsGroup, wigStartInfo, callback, null, workItemPriority);
 }
Exemplo n.º 2
0
 public WorkItemInfo(WorkItemInfo workItemInfo)
 {
     _useCallerCallContext = workItemInfo._useCallerCallContext;
     _useCallerHttpContext = workItemInfo._useCallerHttpContext;
     _disposeOfStateObjects = workItemInfo._disposeOfStateObjects;
     _callToPostExecute = workItemInfo._callToPostExecute;
     _postExecuteWorkItemCallback = workItemInfo._postExecuteWorkItemCallback;
     _workItemPriority = workItemInfo._workItemPriority;
 }
Exemplo n.º 3
0
 public WorkItemInfo()
 {
     _useCallerCallContext = SmartThreadPool.DefaultUseCallerCallContext;
     _useCallerHttpContext = SmartThreadPool.DefaultUseCallerHttpContext;
     _disposeOfStateObjects = SmartThreadPool.DefaultDisposeOfStateObjects;
     _callToPostExecute = SmartThreadPool.DefaultCallToPostExecute;
     _postExecuteWorkItemCallback = SmartThreadPool.DefaultPostExecuteWorkItemCallback;
     _workItemPriority = SmartThreadPool.DefaultWorkItemPriority;
 }
 // Creates a new instance with the specified degree of parallelism. 
 public LimitedConcurrencyLevelTaskScheduler(int maxDegreeOfParallelism, WorkItemPriority priority, bool fDisableInlining = false)
 {
     if (maxDegreeOfParallelism < 1)
     {
         throw new ArgumentOutOfRangeException("maxDegreeOfParallelism");
     }
     this._maxDegreeOfParallelism = maxDegreeOfParallelism;
     this._workItemPriority = priority;
     this._fDisableInlining = fDisableInlining;
 }
Exemplo n.º 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;
 }
Exemplo n.º 6
0
 public WIGStartInfo()
 {
     _fillStateWithArgs = SmartThreadPool.DefaultFillStateWithArgs;
     _workItemPriority = SmartThreadPool.DefaultWorkItemPriority;
     _startSuspended = SmartThreadPool.DefaultStartSuspended;
     _postExecuteWorkItemCallback = SmartThreadPool.DefaultPostExecuteWorkItemCallback;
     _callToPostExecute = SmartThreadPool.DefaultCallToPostExecute;
     _disposeOfStateObjects = SmartThreadPool.DefaultDisposeOfStateObjects;
     _useCallerHttpContext = SmartThreadPool.DefaultUseCallerHttpContext;
     _useCallerCallContext = SmartThreadPool.DefaultUseCallerCallContext;
 }
Exemplo n.º 7
0
 // Token: 0x06001837 RID: 6199
 // RVA: 0x00074E5C File Offset: 0x0007305C
 public WIGStartInfo(WIGStartInfo wigstartInfo_0)
 {
     this._useCallerCallContext = wigstartInfo_0.UseCallerCallContext;
     this._useCallerHttpContext = wigstartInfo_0.UseCallerHttpContext;
     this._disposeOfStateObjects = wigstartInfo_0.DisposeOfStateObjects;
     this._callToPostExecute = wigstartInfo_0.CallToPostExecute;
     this._postExecuteWorkItemCallback = wigstartInfo_0.PostExecuteWorkItemCallback;
     this._workItemPriority = wigstartInfo_0.WorkItemPriority;
     this._startSuspended = wigstartInfo_0.StartSuspended;
     this._fillStateWithArgs = wigstartInfo_0.FillStateWithArgs;
 }
Exemplo n.º 8
0
 // Token: 0x06001836 RID: 6198
 // RVA: 0x00074E0C File Offset: 0x0007300C
 public WIGStartInfo()
 {
     this._fillStateWithArgs = false;
     this._workItemPriority = WorkItemPriority.Normal;
     this._startSuspended = false;
     this._postExecuteWorkItemCallback = SmartThreadPool.DefaultPostExecuteWorkItemCallback;
     this._callToPostExecute = CallToPostExecute.Always;
     this._disposeOfStateObjects = false;
     this._useCallerHttpContext = false;
     this._useCallerCallContext = false;
 }
Exemplo n.º 9
0
 // Token: 0x0600185F RID: 6239
 // RVA: 0x00075274 File Offset: 0x00073474
 public static WorkItem CreateWorkItem(IWorkItemsGroup iworkItemsGroup_0, WIGStartInfo wigstartInfo_0, WorkItemCallback workItemCallback_0, object object_0, WorkItemPriority workItemPriority_0)
 {
     WorkItemFactory.ValidateCallback(workItemCallback_0);
     return new WorkItem(iworkItemsGroup_0, new WorkItemInfo
     {
         UseCallerCallContext = wigstartInfo_0.UseCallerCallContext,
         UseCallerHttpContext = wigstartInfo_0.UseCallerHttpContext,
         PostExecuteWorkItemCallback = wigstartInfo_0.PostExecuteWorkItemCallback,
         CallToPostExecute = wigstartInfo_0.CallToPostExecute,
         DisposeOfStateObjects = wigstartInfo_0.DisposeOfStateObjects,
         WorkItemPriority = workItemPriority_0
     }, workItemCallback_0, object_0);
 }
Exemplo n.º 10
0
 private void EnqueueWorkItems(ref int startIndex, int count, string text, Color color, WorkItemPriority priority, IWorkItemsGroup wig, int sleepDuration)
 {
     for (int i = 0; i < count; ++i, ++startIndex)
     {
         wig.QueueWorkItem(
             DoNothing,
             new WorkItemState(new QueueUsageControl.QueueUsageEntry(string.Format("{0}{1} ({2})", text, startIndex, priority.ToString().Substring(0,2 )), color), sleepDuration),
             priority);
     }
     _workItemsGenerated += count;
 }
Exemplo n.º 11
0
        /// <summary>
        ///   Create a new work item
        /// </summary>
        /// <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>
        /// <param name = "postExecuteWorkItemCallback">
        ///   A delegate to call after the callback completion
        /// </param>
        /// <param name = "callToPostExecute">Indicates on which cases to call to the post execute callback</param>
        /// <param name = "workItemPriority">The work item priority</param>
        /// <returns>Returns a work item</returns>
        public static WorkItem CreateWorkItem(
            IWorkItemsGroup workItemsGroup,
            WIGStartInfo wigStartInfo,
            WorkItemCallback callback,
            object state,
            PostExecuteWorkItemCallback postExecuteWorkItemCallback,
            CallToPostExecute callToPostExecute,
            WorkItemPriority workItemPriority)
        {
            ValidateCallback(callback);
            ValidateCallback(postExecuteWorkItemCallback);

            WorkItemInfo workItemInfo = new WorkItemInfo
                                            {
                                                UseCallerCallContext = wigStartInfo.UseCallerCallContext,
                                                UseCallerHttpContext = wigStartInfo.UseCallerHttpContext,
                                                PostExecuteWorkItemCallback = postExecuteWorkItemCallback,
                                                CallToPostExecute = callToPostExecute,
                                                WorkItemPriority = workItemPriority,
                                                DisposeOfStateObjects = wigStartInfo.DisposeOfStateObjects
                                            };

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

            return workItem;
        }
Exemplo n.º 12
0
		public static IAsyncAction RunAsync (WorkItemHandler handler, WorkItemPriority priority)
		{
			return RunAsync (handler);
		}
		    public PriorityItem(WorkItemPriority workItemPriority)
			{
				WorkItemPriority = workItemPriority;
			}
Exemplo n.º 14
0
 /// <summary>
 /// Queue a work item
 /// </summary>
 /// <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>
 /// <param name="postExecuteWorkItemCallback">
 /// A delegate to call after the callback completion
 /// </param>
 /// <param name="callToPostExecute">Indicates on which cases to call to the post execute callback</param>
 /// <param name="workItemPriority">The work item priority</param>
 /// <returns>Returns a work item result</returns>
 public IWorkItemResult QueueWorkItem(
     WorkItemCallback callback,
     object state,
     PostExecuteWorkItemCallback postExecuteWorkItemCallback,
     CallToPostExecute callToPostExecute,
     WorkItemPriority workItemPriority)
 {
     WorkItem workItem = WorkItemFactory.CreateWorkItem(this, _workItemsGroupStartInfo, callback, state,
                                                        postExecuteWorkItemCallback, callToPostExecute,
                                                        workItemPriority);
     EnqueueToSTPNextWorkItem(workItem);
     return workItem.GetWorkItemResult();
 }
Exemplo n.º 15
0
 /// <summary>
 /// Queue a work item
 /// </summary>
 /// <param name="callback">A callback to execute</param>
 /// <param name="workItemPriority">The priority of the work item</param>
 /// <returns>Returns a work item result</returns>
 public IWorkItemResult QueueWorkItem(WorkItemCallback callback, WorkItemPriority workItemPriority)
 {
     WorkItem workItem = WorkItemFactory.CreateWorkItem(this, _workItemsGroupStartInfo, callback,
                                                        workItemPriority);
     EnqueueToSTPNextWorkItem(workItem);
     return workItem.GetWorkItemResult();
 }
Exemplo n.º 16
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="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>
		/// <param name="workItemPriority">The work item priority</param>
		/// <returns>Returns a work item</returns>
		public static WorkItem CreateWorkItem(
			IWorkItemsGroup workItemsGroup,
			WIGStartInfo wigStartInfo,
			WorkItemCallback callback, 
			object state, 
			WorkItemPriority workItemPriority)
		{
			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 = workItemPriority;

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

			return workItem;
		}
Exemplo n.º 17
0
        /// <summary>
        /// Add a file to download to the queue
        /// You have to subscribe to the <see cref="DownloadProgressNotification"/> event to get notified when the download is finished.
        /// </summary>
        /// <param name="uri">File to download</param>
        /// <param name="localFile">Local path to download to</param>
        /// <param name="identifier">Arbitrary identifier</param>
        /// <param name="overwriteExistingFile">Overwrite an already existing file</param>
        /// <param name="retries">Number of times to retry the download until we fail</param>
        /// <param name="priority">Priority for the WorkItem</param>
        public void AddDownload(Uri uri, FileInfo localFile, object identifier, bool overwriteExistingFile, int retries, WorkItemPriority priority)
        {
            var fileDownloadInfo = new FileDownloadInfo{ Url = uri, Identifier = identifier, LocalFile = localFile, Priority = priority, Retries = retries, OverwriteExistingFile = overwriteExistingFile };

            lock (downloadThreadPoolLockObject)
            {
                downloadThreadPool.QueueWorkItem(this.DoWork, fileDownloadInfo, priority);
            }
        }
Exemplo n.º 18
0
 /// <summary>
 /// Queue a work item
 /// </summary>
 /// <param name="callback">A callback to execute</param>
 /// <param name="workItemPriority">The priority of the work item</param>
 /// <returns>Returns a work item result</returns>
 public IWorkItemResult QueueWorkItem(WorkItemCallback callback, WorkItemPriority workItemPriority)
 {
     ValidateNotDisposed();
     ValidateCallback(callback);
     WorkItem workItem = WorkItemFactory.CreateWorkItem(this, _stpStartInfo, callback, workItemPriority);
     Enqueue(workItem);
     return workItem.GetWorkItemResult();
 }
Exemplo n.º 19
0
 /// <summary>
 /// Queue a work item
 /// </summary>
 /// <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>
 /// <param name="postExecuteWorkItemCallback">
 /// A delegate to call after the callback completion
 /// </param>
 /// <param name="callToPostExecute">Indicates on which cases to call to the post execute callback</param>
 /// <param name="workItemPriority">The work item priority</param>
 /// <returns>Returns a work item result</returns>
 public IWorkItemResult QueueWorkItem(
     WorkItemCallback callback, 
     object state,
     PostExecuteWorkItemCallback postExecuteWorkItemCallback,
     CallToPostExecute callToPostExecute,
     WorkItemPriority workItemPriority)
 {
     ValidateNotDisposed();
     ValidateCallback(callback);
     WorkItem workItem = WorkItemFactory.CreateWorkItem(this, _stpStartInfo, callback, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority);
     Enqueue(workItem);
     return workItem.GetWorkItemResult();
 }
Exemplo n.º 20
0
 // Token: 0x0600185D RID: 6237
 // RVA: 0x00014E50 File Offset: 0x00013050
 public static WorkItem CreateWorkItem(IWorkItemsGroup iworkItemsGroup_0, WIGStartInfo wigstartInfo_0, WorkItemCallback workItemCallback_0, WorkItemPriority workItemPriority_0)
 {
     return WorkItemFactory.CreateWorkItem(iworkItemsGroup_0, wigstartInfo_0, workItemCallback_0, null, workItemPriority_0);
 }