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() 尝试停止, 强制停止并终止所有任务线程. -
⚠️ **GitHub.com Fallback** ⚠️