/// <summary> /// Queue a work item /// </summary> /// <returns>Returns a work item result</returns> /// <param name="func">Func.</param> /// <param name="arg1">Arg1.</param> /// <param name="arg2">Arg2.</param> /// <param name="arg3">Arg3.</param> /// <param name="arg4">Arg4.</param> /// <typeparam name="T1">The 1st type parameter.</typeparam> /// <typeparam name="T2">The 2nd type parameter.</typeparam> /// <typeparam name="T3">The 3rd type parameter.</typeparam> /// <typeparam name="T4">The 4th type parameter.</typeparam> /// <typeparam name="TResult">The 5th type parameter.</typeparam> public IWorkItemResult <TResult> QueueWorkItem <T1, T2, T3, T4, TResult>( Func <T1, T2, T3, T4, TResult> func, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { PreQueueWorkItem(); WorkItem workItem = WorkItemFactory.CreateWorkItem( this, WIGStartInfo, state => { return(func.Invoke(arg1, arg2, arg3, arg4)); }, WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2, arg3, arg4 } : null); Enqueue(workItem); return(new WorkItemResultTWrapper <TResult>(workItem.GetWorkItemResult())); }
/// <summary> /// Queue a work item /// </summary> /// <param name="action">Action.</param> /// <param name="arg1">Arg1.</param> /// <param name="arg2">Arg2.</param> /// <param name="arg3">Arg3.</param> /// <param name="priority">Priority.</param> /// <typeparam name="T1">The 1st type parameter.</typeparam> /// <typeparam name="T2">The 2nd type parameter.</typeparam> /// <typeparam name="T3">The 3rd type parameter.</typeparam> public IWorkItemResult QueueWorkItem <T1, T2, T3> (Action <T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority) { PreQueueWorkItem(); WorkItem workItem = WorkItemFactory.CreateWorkItem( this, WIGStartInfo, state => { action.Invoke(arg1, arg2, arg3); return(null); }, WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2, arg3 } : null, priority); Enqueue(workItem); return(workItem.GetWorkItemResult()); }