我有一个对象,在一组任务完成时发送信号。这些任务在线程池中独立执行。当一组任务全部完成时,我想向观察者发送通知。
本质上,这归结为引用计数方案。当引用计数(ref)等于0时,我发送通知。其中一个实现方法是利用boost智能指针(或任何引用计数的自动指针)。
class TaskCompletionNotifier {
~TaskCompletionNotifier() {
_listener->notify();
}
setListener(listener);
Listener _listener;
}
class Task {
boost::shared_ptr<TaskCompletionNotifier> _notifier;
}
我的问题是,在对象的析构函数中执行这个调用是否是不好的做法?