EventFlags
EventFlags 类层次结构
EventFlags 类提供了一种设置和等待特定条件的机制。它提供了一种通知其他线程有关条件或事件的通用方法。您可以将 EventFlags 类的每个实例视为事件通道。每个活动有 31 种不同的标志。
EventFlag 类参考
公共成员函数 | |
EventFlags () | |
EventFlags (const char *name) | |
uint32_t | set (uint32_t flags) |
uint32_t | clear (uint32_t flags=0x7fffffff) |
uint32_t | get () const |
uint32_t | wait_all (uint32_t flags=0, uint32_t timeout=osWaitForever, bool clear=true) |
uint32_t | wait_any (uint32_t flags=0, uint32_t timeout=osWaitForever, bool clear=true) |
~EventFlags () |
EventFlags 示例
下面是 EventFlags 用法的示例,其中一个线程每 1 秒生成事件,第二个线程正在等待事件并执行某些操作。
#include "mbed.h"
EventFlags event;
void worker_f()
{
while (true) {
event.wait_all(0x1);
printf("Got signal!\r\n");
}
}
int main()
{
Thread worker;
worker.start(callback(worker_f));
while (true) {
wait(1);
event.set(0x1);
}
}