API Summary - ZjzMisaka/PowerThreadPool.zh-CN.Wiki GitHub Wiki
名称 | 摘要 | 结果 |
---|---|---|
QueueWorkItem<...>(...) | 将任务加入队列等待执行. | 任务ID |
QueueWorkItemAsync<...>(...) | 将异步任务加入队列等待执行. | 任务ID |
PauseIfRequested() | 在任务逻辑中调用此函数, 当用户调用 Pause(...) 时可以暂停. | - |
StopIfRequested(Func beforeStop = null) | 在任务逻辑中调用此函数, 当用户调用 Stop(...) 时可以停止. 为了退出逻辑, 函数会抛出一个 PowerThreadPool.Exceptions.WorkStopException. 不要捕获该异常. 如果不希望以这种方式退出逻辑 (例如, 有一些非托管资源需要在退出前释放) , 建议使用 CheckIfRequestedStop. |
- |
CheckIfRequestedStop() | 在任务逻辑中调用此函数, 检查是否请求停止 (如果用户调用 Stop(...)) . 若返回 true, 你可以执行一些预操作 (如释放非托管资源) , 然后安全退出逻辑. |
是否请求停止 |
Wait() | 阻塞调用线程, 直到所有任务结束. | - |
Wait(string id) | 阻塞调用线程, 直到指定任务结束. | 如果任务未运行则返回 false |
Wait(IEnumerable idList) | 阻塞调用线程, 直到指定的任务结束. | 返回一个未运行任务的ID列表 |
WaitAsync() | 异步阻塞调用线程, 直到所有任务结束. | Task |
WaitAsync(string id) | 异步阻塞调用线程, 直到指定任务结束. | (Task) 如果任务未运行则返回 false |
WaitAsync(IEnumerable idList) | 异步阻塞调用线程, 直到指定的任务结束. | (Task) 返回一个未运行任务的ID列表 |
Fetch(string id, bool removeAfterFetch = false) | 获取任务结果. | 任务结果 |
Fetch(string id, bool removeAfterFetch = false) | 获取任务结果. | 任务结果 |
Fetch(IEnumerable idList, bool removeAfterFetch = false) | 获取任务结果. | 任务结果 |
Fetch(IEnumerable idList, bool removeAfterFetch = false) | 获取任务结果. | 任务结果 |
Fetch(Func<ExecuteResult, bool> predicate, bool removeAfterFetch = false) | 根据条件获取任务结果. | 返回一个任务结果列表 |
FetchAsync(string id, bool removeAfterFetch = false) | 异步获取任务结果. | (Task) 任务结果 |
FetchAsync(string id, bool removeAfterFetch = false) | 异步获取任务结果. | (Task) 任务结果 |
FetchAsync(IEnumerable idList, bool removeAfterFetch = false) | 异步获取任务结果. | (Task) 任务结果 |
FetchAsync(IEnumerable idList, bool removeAfterFetch = false) | 异步获取任务结果. | (Task) 任务结果 |
Stop(bool forceStop = false) | 停止所有任务. 如果 forceStop 为 true, 将调用 Thread.Interrupt(). | 如果没有线程运行则返回 false |
Stop(string id, bool forceStop = false) | 根据 ID 停止任务. 如果 forceStop 为 true, 将调用 Thread.Interrupt(). | 如果任务不存在或已完成则返回 false |
Stop(IEnumerable idList, bool forceStop = false) | 根据 ID 列表停止任务. 如果 forceStop 为 true, 将调用 Thread.Interrupt(). | 返回一个不存在或未完成任务的 ID 列表 |
Pause() | 暂停所有线程. | - |
Pause(string id) | 根据 ID 暂停线程. | 如果任务 ID 存在 |
Pause(IEnumerable idList) | 根据 ID 列表暂停线程. | 返回一个不存在任务的 ID 列表 |
Resume(bool resumeThreadPausedById = false) | 恢复所有线程. | - |
Resume(string id) | 根据 ID 恢复线程. | 如果任务 ID 存在 |
Resume(IEnumerable idList) | 根据 ID 列表恢复线程. | 返回一个不存在任务的 ID 列表 |
Cancel() | 取消所有未开始运行的任务. | - |
Cancel(string id) | 取消指定 ID 的任务 (如果任务尚未开始运行) . | 是否成功 |
GetGroup() | 获取组对象. | 组对象 |
GetGroupMemberList() | 获取组的所有成员. | 任务 ID 列表 |
AddWorkToGroup(string groupName, string workID) | 将任务添加到组. | 如果任务不存在则返回 false. 修改 WorkOption.Group. |
RemoveWorkFromGroup(string groupName, string workID) | 从组中移除任务. | 如果任务或组不存在, 或任务不属于该组, 则返回 false. |
SetGroupRelation(string parentGroup, string childGroup) | 设置组关系. | - |
RemoveGroupRelation(string parentGroup, string childGroup = null) | 移除组关系. | 是否成功 |
ResetGroupRelation() | 重置组关系. | - |
For(int start, int end, Action body, int step = 1, string groupName = null) | 创建一个并行循环, 执行从 start 到 end 的迭代. | 组对象 |
For(int start, int end, IList source, Action body, int step = 1, string groupName = null) | 创建一个并行循环, 执行从 start 到 end 的迭代. | 组对象 |
For(int start, int end, IList source, Action<TSource, int> body, int step = 1, string groupName = null) | 创建一个并行循环, 执行从 start 到 end 的迭代. | 组对象 |
ForEach(IEnumerable source, Action body, string groupName = null) | 为源集合中的每个元素创建一个并行循环, 执行指定操作. | 组对象 |
ForEach(IEnumerable source, Action<TSource, int> body, string groupName = null) | 为源集合中的每个元素创建一个并行循环, 执行指定操作. | 组对象 |
Start() | 开始运行线程池 (仅当PowerPoolOption.StartSuspended为true时) | |
ClearResultStorage() | 清除结果存储区. | - |
ClearResultStorage(string workID) | 清除指定任务 ID 的结果存储区. | - |
ClearResultStorage(IEnumerable workIDList) | 清除指定任务 ID 列表的结果存储区. | - |
ClearFailedWorkRecord() | 清除失败的任务记录. | - |
Dispose() | 尝试停止, 强制停止并终止所有任务线程. | - |