-
Notifications
You must be signed in to change notification settings - Fork 0
Work Group
ZjzMisaka edited this page Dec 24, 2024
·
1 revision
WorkOption.Group
を使用して、タスクにグループを設定することができます。
powerPool.QueueWorkItem(() =>
{
// 何かを実行
}, new WorkOption()
{
Group = "GroupName"
});
このように、設定されたグループを使ってタスクの実行を一括で制御することができます。
powerPool.GetGroup("GroupName").Wait();
powerPool.Wait(powerPool.GetGroupMemberList("GroupName"));
PowerPool.GetGroup(string groupName)
はグループオブジェクトを返します。このオブジェクトは、そのグループに属するタスクを制御する機能を持っています。
[読み取り専用]
グループ名
string Name;
グループオブジェクトには、スレッドプールとタスク制御 に似た以下のグループ制御機能があります。
名前 | 説明 | 戻り値 |
---|---|---|
Add(string workID) | タスクをグループに追加します。 | タスクが存在しない場合は false を返します。 WorkOption.Group を変更します。 |
Remove(string workID) | グループからタスクを削除します。 | タスクが存在しないか、またはタスクがそのグループに属していない場合は false を返します。 |
Wait() | そのグループ内のすべてのタスクが完了するまで待機します。 | |
WaitAsync() | そのグループ内のすべてのタスクが完了するまで非同期で待機します。 | |
Fetch(bool removeAfterFetch = false) | タスクの結果を取得します。 | タスクの結果リストを返します。 |
Fetch(bool removeAfterFetch = false) | タスクの結果を取得します。 | タスクの結果リストを返します。 |
Fetch(Func<ExecuteResult, bool> predicate, bool removeAfterFetch = false) | タスクの結果を取得します。 | タスクの結果リストを返します。 |
FetchAsync(bool removeAfterFetch = false) | タスクの結果を非同期で取得します。 | タスクの結果リストを返します。 |
FetchAsync(bool removeAfterFetch = false) | タスクの結果を非同期で取得します。 | タスクの結果リストを返します。 |
Stop(bool forceStop = false) | そのグループ内のすべてのタスクを停止します。 | 実行中のスレッドがない場合は false を返します。 |
Pause() | そのグループ内のすべてのタスクを一時停止します。 | 存在しないタスクのIDリストを返します。 |
Resume() | そのグループ内のすべてのタスクを再開します。 | 存在しないタスクのIDリストを返します。 |
Cancel() | そのグループ内のすべてのタスクをキャンセルします。 | 存在しないタスクのIDリストを返します。 |