mirror of
https://github.com/farcasclaudiu/SmartThreadPool.git
synced 2026-06-22 07:01:18 +03:00
Added WorkItemPriority as optional parameter to Func overloads in WorkItemsGroupBase.cs
This commit is contained in:
@@ -265,61 +265,31 @@ namespace Amib.Threading
|
|||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
||||||
IWorkItemResult QueueWorkItem(Action action);
|
IWorkItemResult QueueWorkItem(Action action, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
||||||
IWorkItemResult QueueWorkItem (Action action, WorkItemPriority priority);
|
IWorkItemResult QueueWorkItem<T>(Action<T> action, T arg, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
||||||
IWorkItemResult QueueWorkItem<T> (Action<T> action, T arg, WorkItemPriority priority);
|
IWorkItemResult QueueWorkItem<T1, T2>(Action<T1, T2> action, T1 arg1, T2 arg2, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
||||||
IWorkItemResult QueueWorkItem<T> (Action<T> action, T arg);
|
IWorkItemResult QueueWorkItem<T1, T2, T3>(Action<T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
||||||
IWorkItemResult QueueWorkItem<T1, T2>(Action<T1, T2> action, T1 arg1, T2 arg2);
|
IWorkItemResult QueueWorkItem<T1, T2, T3, T4>(Action<T1, T2, T3, T4> action, T1 arg1, T2 arg2, T3 arg3, T4 arg4, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Queue a work item.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
|
||||||
IWorkItemResult QueueWorkItem<T1, T2> (Action<T1, T2> action, T1 arg1, T2 arg2, WorkItemPriority priority);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Queue a work item.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
|
||||||
IWorkItemResult QueueWorkItem<T1, T2, T3>(Action<T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Queue a work item.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
|
||||||
IWorkItemResult QueueWorkItem<T1, T2, T3> (Action<T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Queue a work item.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
|
||||||
IWorkItemResult QueueWorkItem<T1, T2, T3, T4>(Action<T1, T2, T3, T4> action, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Queue a work item.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>Returns a IWorkItemResult object, but its GetResult() will always return null</returns>
|
|
||||||
IWorkItemResult QueueWorkItem<T1, T2, T3, T4> (Action<T1, T2, T3, T4> action, T1 arg1, T2 arg2, T3 arg3, T4 arg4, WorkItemPriority priority);
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -330,35 +300,35 @@ namespace Amib.Threading
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult<TResult> object.
|
/// <returns>Returns a IWorkItemResult<TResult> object.
|
||||||
/// its GetResult() returns a TResult object</returns>
|
/// its GetResult() returns a TResult object</returns>
|
||||||
IWorkItemResult<TResult> QueueWorkItem<TResult>(Func<TResult> func);
|
IWorkItemResult<TResult> QueueWorkItem<TResult>(Func<TResult> func, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult<TResult> object.
|
/// <returns>Returns a IWorkItemResult<TResult> object.
|
||||||
/// its GetResult() returns a TResult object</returns>
|
/// its GetResult() returns a TResult object</returns>
|
||||||
IWorkItemResult<TResult> QueueWorkItem<T, TResult>(Func<T, TResult> func, T arg);
|
IWorkItemResult<TResult> QueueWorkItem<T, TResult>(Func<T, TResult> func, T arg, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult<TResult> object.
|
/// <returns>Returns a IWorkItemResult<TResult> object.
|
||||||
/// its GetResult() returns a TResult object</returns>
|
/// its GetResult() returns a TResult object</returns>
|
||||||
IWorkItemResult<TResult> QueueWorkItem<T1, T2, TResult>(Func<T1, T2, TResult> func, T1 arg1, T2 arg2);
|
IWorkItemResult<TResult> QueueWorkItem<T1, T2, TResult>(Func<T1, T2, TResult> func, T1 arg1, T2 arg2, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult<TResult> object.
|
/// <returns>Returns a IWorkItemResult<TResult> object.
|
||||||
/// its GetResult() returns a TResult object</returns>
|
/// its GetResult() returns a TResult object</returns>
|
||||||
IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> func, T1 arg1, T2 arg2, T3 arg3);
|
IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> func, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queue a work item.
|
/// Queue a work item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Returns a IWorkItemResult<TResult> object.
|
/// <returns>Returns a IWorkItemResult<TResult> object.
|
||||||
/// its GetResult() returns a TResult object</returns>
|
/// its GetResult() returns a TResult object</returns>
|
||||||
IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, T4, TResult>(Func<T1, T2, T3, T4, TResult> func, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
|
IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, T4, TResult>(Func<T1, T2, T3, T4, TResult> func, T1 arg1, T2 arg2, T3 arg3, T4 arg4, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -276,12 +276,7 @@ namespace Amib.Threading.Internal
|
|||||||
|
|
||||||
#region QueueWorkItem(Action<...>)
|
#region QueueWorkItem(Action<...>)
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem(Action action)
|
public IWorkItemResult QueueWorkItem(Action action, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
|
||||||
return QueueWorkItem (action, SmartThreadPool.DefaultWorkItemPriority);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem (Action action, WorkItemPriority priority)
|
|
||||||
{
|
{
|
||||||
PreQueueWorkItem ();
|
PreQueueWorkItem ();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
||||||
@@ -296,12 +291,7 @@ namespace Amib.Threading.Internal
|
|||||||
return workItem.GetWorkItemResult ();
|
return workItem.GetWorkItemResult ();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T>(Action<T> action, T arg)
|
public IWorkItemResult QueueWorkItem<T>(Action<T> action, T arg, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
|
||||||
return QueueWorkItem<T> (action, arg, SmartThreadPool.DefaultWorkItemPriority);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T> (Action<T> action, T arg, WorkItemPriority priority)
|
|
||||||
{
|
{
|
||||||
PreQueueWorkItem ();
|
PreQueueWorkItem ();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
||||||
@@ -317,12 +307,7 @@ namespace Amib.Threading.Internal
|
|||||||
return workItem.GetWorkItemResult ();
|
return workItem.GetWorkItemResult ();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T1, T2>(Action<T1, T2> action, T1 arg1, T2 arg2)
|
public IWorkItemResult QueueWorkItem<T1, T2>(Action<T1, T2> action, T1 arg1, T2 arg2, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
|
||||||
return QueueWorkItem<T1, T2> (action, arg1, arg2, SmartThreadPool.DefaultWorkItemPriority);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T1, T2> (Action<T1, T2> action, T1 arg1, T2 arg2, WorkItemPriority priority)
|
|
||||||
{
|
{
|
||||||
PreQueueWorkItem ();
|
PreQueueWorkItem ();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
||||||
@@ -338,13 +323,7 @@ namespace Amib.Threading.Internal
|
|||||||
return workItem.GetWorkItemResult ();
|
return workItem.GetWorkItemResult ();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T1, T2, T3>(Action<T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3)
|
public IWorkItemResult QueueWorkItem<T1, T2, T3>(Action<T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
|
||||||
return QueueWorkItem<T1, T2, T3> (action, arg1, arg2, arg3, SmartThreadPool.DefaultWorkItemPriority);
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T1, T2, T3> (Action<T1, T2, T3> action, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority)
|
|
||||||
{
|
{
|
||||||
PreQueueWorkItem ();
|
PreQueueWorkItem ();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
||||||
@@ -360,15 +339,8 @@ namespace Amib.Threading.Internal
|
|||||||
return workItem.GetWorkItemResult ();
|
return workItem.GetWorkItemResult ();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T1, T2, T3, T4>(
|
|
||||||
Action<T1, T2, T3, T4> action, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
|
|
||||||
{
|
|
||||||
return QueueWorkItem<T1, T2, T3, T4> (action, arg1, arg2, arg3, arg4,
|
|
||||||
SmartThreadPool.DefaultWorkItemPriority);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IWorkItemResult QueueWorkItem<T1, T2, T3, T4> (
|
public IWorkItemResult QueueWorkItem<T1, T2, T3, T4> (
|
||||||
Action<T1, T2, T3, T4> action, T1 arg1, T2 arg2, T3 arg3, T4 arg4, WorkItemPriority priority)
|
Action<T1, T2, T3, T4> action, T1 arg1, T2 arg2, T3 arg3, T4 arg4, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
{
|
||||||
PreQueueWorkItem ();
|
PreQueueWorkItem ();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
WorkItem workItem = WorkItemFactory.CreateWorkItem (
|
||||||
@@ -388,7 +360,7 @@ namespace Amib.Threading.Internal
|
|||||||
|
|
||||||
#region QueueWorkItem(Func<...>)
|
#region QueueWorkItem(Func<...>)
|
||||||
|
|
||||||
public IWorkItemResult<TResult> QueueWorkItem<TResult>(Func<TResult> func)
|
public IWorkItemResult<TResult> QueueWorkItem<TResult>(Func<TResult> func, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
{
|
||||||
PreQueueWorkItem();
|
PreQueueWorkItem();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
||||||
@@ -397,12 +369,12 @@ namespace Amib.Threading.Internal
|
|||||||
state =>
|
state =>
|
||||||
{
|
{
|
||||||
return func.Invoke();
|
return func.Invoke();
|
||||||
});
|
}, priority);
|
||||||
Enqueue(workItem);
|
Enqueue(workItem);
|
||||||
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult<TResult> QueueWorkItem<T, TResult>(Func<T, TResult> func, T arg)
|
public IWorkItemResult<TResult> QueueWorkItem<T, TResult>(Func<T, TResult> func, T arg, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
{
|
||||||
PreQueueWorkItem();
|
PreQueueWorkItem();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
||||||
@@ -412,12 +384,13 @@ namespace Amib.Threading.Internal
|
|||||||
{
|
{
|
||||||
return func.Invoke(arg);
|
return func.Invoke(arg);
|
||||||
},
|
},
|
||||||
WIGStartInfo.FillStateWithArgs ? new object[] { arg } : null);
|
WIGStartInfo.FillStateWithArgs ? new object[] { arg } : null,
|
||||||
|
priority);
|
||||||
Enqueue(workItem);
|
Enqueue(workItem);
|
||||||
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult<TResult> QueueWorkItem<T1, T2, TResult>(Func<T1, T2, TResult> func, T1 arg1, T2 arg2)
|
public IWorkItemResult<TResult> QueueWorkItem<T1, T2, TResult>(Func<T1, T2, TResult> func, T1 arg1, T2 arg2, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
{
|
||||||
PreQueueWorkItem();
|
PreQueueWorkItem();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
||||||
@@ -427,13 +400,14 @@ namespace Amib.Threading.Internal
|
|||||||
{
|
{
|
||||||
return func.Invoke(arg1, arg2);
|
return func.Invoke(arg1, arg2);
|
||||||
},
|
},
|
||||||
WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2 } : null);
|
WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2 } : null,
|
||||||
|
priority);
|
||||||
Enqueue(workItem);
|
Enqueue(workItem);
|
||||||
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, TResult>(
|
public IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, TResult>(
|
||||||
Func<T1, T2, T3, TResult> func, T1 arg1, T2 arg2, T3 arg3)
|
Func<T1, T2, T3, TResult> func, T1 arg1, T2 arg2, T3 arg3, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
{
|
||||||
PreQueueWorkItem();
|
PreQueueWorkItem();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
||||||
@@ -443,13 +417,14 @@ namespace Amib.Threading.Internal
|
|||||||
{
|
{
|
||||||
return func.Invoke(arg1, arg2, arg3);
|
return func.Invoke(arg1, arg2, arg3);
|
||||||
},
|
},
|
||||||
WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2, arg3 } : null);
|
WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2, arg3 } : null,
|
||||||
|
priority);
|
||||||
Enqueue(workItem);
|
Enqueue(workItem);
|
||||||
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, T4, TResult>(
|
public IWorkItemResult<TResult> QueueWorkItem<T1, T2, T3, T4, TResult>(
|
||||||
Func<T1, T2, T3, T4, TResult> func, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
|
Func<T1, T2, T3, T4, TResult> func, T1 arg1, T2 arg2, T3 arg3, T4 arg4, WorkItemPriority priority = SmartThreadPool.DefaultWorkItemPriority)
|
||||||
{
|
{
|
||||||
PreQueueWorkItem();
|
PreQueueWorkItem();
|
||||||
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
WorkItem workItem = WorkItemFactory.CreateWorkItem(
|
||||||
@@ -459,7 +434,8 @@ namespace Amib.Threading.Internal
|
|||||||
{
|
{
|
||||||
return func.Invoke(arg1, arg2, arg3, arg4);
|
return func.Invoke(arg1, arg2, arg3, arg4);
|
||||||
},
|
},
|
||||||
WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2, arg3, arg4 } : null);
|
WIGStartInfo.FillStateWithArgs ? new object[] { arg1, arg2, arg3, arg4 } : null,
|
||||||
|
priority);
|
||||||
Enqueue(workItem);
|
Enqueue(workItem);
|
||||||
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
return new WorkItemResultTWrapper<TResult>(workItem.GetWorkItemResult());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user