阻止直到调用boost :: signal

时间:2011-03-30 17:49:18

标签: c++ multithreading boost

是否有一种简单的方法可以等待调用boost :: signal?我有一个信号在GUI中的每个绘制周期被调用,我想要一个不同的线程来调用一个函数,然后等待下一个绘制周期(当再次调用该信号时,我知道函数的结果已经应用)。

我认为一个解决方案是设置与该信号的连接到另一个函数,该函数将抛出自定义事件并拥有原始功能块直到它获得该事件。但是,这似乎不是最优雅的解决方案。还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

你需要使用信号吗?

线程A:绘图线程
线程B:其他线程在响应中做了一些工作

线程B可能会阻塞某个条件。线程A将此条件设置为true,这允许线程B执行某些操作。线程B将条件设置为false并在此条件下阻塞。

如果你真的需要使用boost :: signal,你可以将它连接到一个设置这个条件为真的函数。