C ++ Signals / Slot: обработка слотов и лучшая библиотека сигналов C ++? - PullRequest
1 голос
/ 10 марта 2010

В настоящее время у меня есть программа, которая использует занятый пул и кучу потоков для мониторинга состояний объекта, обработки данных и передачи данных. Это все очень трудно управлять / тратить время процессора. Я смотрю на удаление потока и использую сигнал / слот, так как в моем коде нет ни одного "блока".

Так что я буду сигнализировать о состоянии моего объекта, что легко. Что еще сложнее, я также хочу использовать слоты для передачи данных и передачи данных.

В основном: A-> SignalIHAVEDATA (B.slot () и C.slot ()) B и C могут не обрабатывать данные. Так что я должен держать флаг в B и C, говоря им, что это данные. Или я должен просто повторно сигнализировать каждые X мс, пока данные не будут приняты.

Также ..

Допустим, B принимает данные. Будет ли иметь смысл, что внутри B.Slot он принимает handleToA-> getData (); && обрабатывать данные? && signalAnotherThing.

Если я посылаю сигнал A и в слоте A я посылаю сигнал B, будет ли обрабатываться слот B до возвращения слота A? (Если эта цепочка очень длинная, может пройти некоторое время, прежде чем вернется slotA?)

Спасибо за помощь:)

1 Ответ

4 голосов
/ 04 марта 2011

Лучшая библиотека сигналов и слотов, конечно, Boost.Signal2 . Это портативный, поточно-ориентированный, основанный на шаблонах и только заголовок. Тебе это понравится.

И да. Я знаю, вы спросили об этом год назад, но я просто не мог оставить это без ответа.

...