У меня есть производитель (P), который продвигает товары потребителю (C).С может принять решение не употреблять все предметы сразу после их прибытия;вместо этого он может асинхронно ожидать, пока в очереди не будет n элементов, или пока не истечет определенный интервал времени t , а затем использовать все элементы в очереди и перезапустить таймер.
P нужно уведомлять всякий раз, когда предмет, который он выдвинул на C, действительно был использован.Это связано с тем, что P отвечает за восстановление в случае сбоя (P сохраняет текущее состояние в БД).Таким образом, в случае перезапуска P необходимо знать, какие элементы ему нужно нажать еще раз, поскольку они не были подтверждены потребителем.
Моя первая идея состояла в том, чтобы C уведомлял P через функцию обратного вызова (делегат): всякий раз, когда элемент используется, функция обратного вызова P вызывается со списком использованных элементов.
Но яинтересно, могут ли быть другие (лучшие) способы уведомления производителя.Что вы думаете?
Стефано
ОБНОВЛЕНИЕ : спасибо за ваши ответы до сих пор.В настоящее время я изучаю, может ли использование асинхронных методов быть элегантным способом синхронизации издателя и потребителя по состоянию публикуемых элементов.