Skip to content

PowerPool

ZjzMisaka edited this page May 22, 2024 · 29 revisions

Properties

PowerPoolOption

PowerPoolOption PowerPoolOption;

Indicates whether to perform pool idle check

bool EnablePoolIdleCheck;

[Get only]
Thread pool is running or not

bool PoolRunning;

[Get only]
Thread pool is stopping (when user call Stop(...)) or not.
When thread pool idled, PoolStopping becomes false.

bool PoolStopping;

[Get only]
Idle worker count

int IdleWorkerCount;

[Get only]
Waiting work count

int WaitingWorkCount;

[Get only]
ID list of waiting works

IEnumerable<string> WaitingWorkList;

[Get only]
Failed work count
Will be reset to zero when the thread pool starts again

int FailedWorkCount;

[Get only]
ID list of failed works
Will be cleared when the thread pool starts again

IEnumerable<string> FailedWorkList;

[Get only]
Running worker count

int RunningWorkerCount;

[Get only]
Alive worker count

int AliveWorkerCount;

[Get only]
Long running worker count

int LongRunningWorkerCount;

[Get only]
The total time spent in the queue (ms).
Will be reset when the thread pool starts again.

long TotalQueueTime;

[Get only]
The total time taken for execution (ms).
Will be reset when the thread pool starts again.

long TotalExecuteTime;

[Get only]
The average time spent in the queue (ms).
Will be reset when the thread pool starts again.

long AverageQueueTime;

[Get only]
The average time taken for execution (ms).
Will be reset when the thread pool starts again.

long AverageExecuteTime;

[Get only]
The average elapsed time from start queue to finish (ms).
Will be reset when the thread pool starts again.

long AverageElapsedTime;

[Get only]
The total elapsed time from start queue to finish (ms).
Will be reset when the thread pool starts again.

long TotalElapsedTime;

Events

event EventHandler<EventArgs> PoolStarted;
event EventHandler<EventArgs> PoolIdled;
event EventHandler<WorkStartedEventArgs> WorkStarted;
event EventHandler<WorkEndedEventArgs> WorkEnded;
event EventHandler<EventArgs>PoolTimedOut;
event EventHandler<WorkTimedOutEventArgs>WorkTimedOut;
event EventHandler<WorkStoppedEventArgs> WorkStopped;
event EventHandler<WorkCanceledEventArgs> WorkCanceled;
event EventHandler<ErrorOccurredEventArgs> ErrorOccurred;

Methods

Read the API Summary here.

string QueueWorkItem<T1>(Action<T1> action, T1 param1, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem<T1>(Action<T1> action, T1 param1, WorkOption option);
string QueueWorkItem<T1, T2>(Action<T1, T2> action, T1 param1, T2 param2, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem<T1, T2>(Action<T1, T2> action, T1 param1, T2 param2, WorkOption option);
string QueueWorkItem<T1, T2, T3>(Action<T1, T2, T3> action, T1 param1, T2 param2, T3 param3, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem<T1, T2, T3>(Action<T1, T2, T3> action, T1 param1, T2 param2, T3 param3, WorkOption option);
string QueueWorkItem<T1, T2, T3, T4>(Action<T1, T2, T3, T4> action, T1 param1, T2 param2, T3 param3, T4 param4, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem<T1, T2, T3, T4>(Action<T1, T2, T3, T4> action, T1 param1, T2 param2, T3 param3, T4 param4, WorkOption option);
string QueueWorkItem<T1, T2, T3, T4, T5>(Action<T1, T2, T3, T4, T5> action, T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem<T1, T2, T3, T4, T5>(Action<T1, T2, T3, T4, T5> action, T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, WorkOption option);
string QueueWorkItem(Action action, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem(Action action, WorkOption option);
string QueueWorkItem(Action<object[]> action, object[] param, Action<ExcuteResult<object>> callBack = null);
string QueueWorkItem(Action<object[]> action, object[] param, WorkOption option);
string QueueWorkItem<T1, TResult>(Func<T1, TResult> function, T1 param1, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<T1, TResult>(Func<T1, TResult> function, T1 param1, WorkOption option);
string QueueWorkItem<T1, T2, TResult>(Func<T1, T2, TResult> function, T1 param1, T2 param2, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<T1, T2, TResult>(Func<T1, T2, TResult> function, T1 param1, T2 param2, WorkOption option);
string QueueWorkItem<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> function, T1 param1, T2 param2, T3 param3, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> function, T1 param1, T2 param2, T3 param3, WorkOption option);
string QueueWorkItem<T1, T2, T3, T4, TResult>(Func<T1, T2, T3, T4, TResult> function, T1 param1, T2 param2, T3 param3, T4 param4, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<T1, T2, T3, T4, TResult>(Func<T1, T2, T3, T4, TResult> function, T1 param1, T2 param2, T3 param3, T4 param4, WorkOption option);
string QueueWorkItem<T1, T2, T3, T4, T5, TResult>(Func<T1, T2, T3, T4, T5, TResult> function, T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<T1, T2, T3, T4, T5, TResult>(Func<T1, T2, T3, T4, T5, TResult> function, T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, WorkOption option);
string QueueWorkItem<TResult>(Func<TResult> function, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<TResult>(Func<TResult> function, WorkOption option);
string QueueWorkItem<TResult>(Func<object[], TResult> function, object[] param, Action<ExcuteResult<TResult>> callBack = null);
string QueueWorkItem<TResult>(Func<object[], TResult> function, object[] param, WorkOption option);
void PauseIfRequested();
void StopIfRequested();
bool CheckIfRequestedStop();
void Wait();
bool Wait(string id);
List<string> Wait(IEnumerable<string> idList);
async Task WaitAsync();
async Task<bool> WaitAsync(string id);
async Task<IEnumerable<string>> WaitAsync(IEnumerable<string> idList);
ExecuteResult<TResult> Fetch<TResult>(string id, bool removeAfterFetch = false);
ExecuteResult<object> Fetch(string id, bool removeAfterFetch = false);
List<ExecuteResult<TResult>> Fetch<TResult>(IEnumerable<string> idList, bool removeAfterFetch = false);
List<ExecuteResult<object>> Fetch(IEnumerable<string> idList, bool removeAfterFetch = false);
async Task<ExecuteResult<TResult>> FetchAsync<TResult>(string id, bool removeAfterFetch = false);
async Task<ExecuteResult<object>> FetchAsync(string id, bool removeAfterFetch = false);
async Task<List<ExecuteResult<TResult>>> FetchAsync<TResult>(IEnumerable<string> idList, bool removeAfterFetch = false);
async Task<List<ExecuteResult<object>>> FetchAsync(IEnumerable<string> idList, bool removeAfterFetch = false);
bool Stop(bool forceStop = false);
bool Stop(string id, bool forceStop = false);
List<string> Stop(IEnumerable<string> idList, bool forceStop = false);
void Pause();
bool Pause(string id);
List<string> Pause(IEnumerable<string> idList);
void Resume(bool resumeWorkPausedByID = false);
bool Resume(string id);
List<string> Resume(IEnumerable<string> idList);
void Cancel();
bool Cancel(string id);
List<string> Cancel(IEnumerable<string> idList);
Group GetGroup(string groupName);
IEnumerable<string> GetGroupMemberList(string groupName);
void ClearResultStorage();
void ClearResultStorage(string workID);
void ClearResultStorage(IEnumerable<string> workIDList);
void ClearFailedWorkRecord();
void Dispose();