Update about-conditional.md

This commit is contained in:
xiehan
2024-09-25 00:28:34 +08:00
committed by GitHub
parent 91f679ad1c
commit 196e4dd8ab

View File

@@ -56,12 +56,13 @@ class WFTaskFactory
public:
static WFConditional *create_conditional(const std::string& cond_name, SubTask *task);
static WFConditional *create_conditional(const std::string& cond_name, SubTask *task, void **msgbuf);
static void signal_by_name(const std::string& cond_name, void *msg);
static void signal_by_name(const std::string& cond_name, void *msg, size_t max);
static int signal_by_name(const std::string& cond_name, void *msg);
static int signal_by_name(const std::string& cond_name, void *msg, size_t max);
};
~~~
我们看到与普通条件任务唯一区别是命名条件任务创建时需要传入一个cond_name。
而signal_by_name()接口将msg发送到所有在这个名称上等待的条件任务可以将它们全部唤醒,或者指定唤醒的最大任务数
而signal_by_name()接口,默认将msg发送到所有在这个名称上等待的条件任务将它们全部唤醒。
也可以通过max参数指定唤醒的最大任务数。函数的返回值表示实际唤醒的个数。
这就相当于实现了观察者模式。
# 示例