Я изучаю C# Поток данных TPL и ознакомился с некоторыми из базовых c блоков. Однако я начинаю задумываться, как настроить более сложные блоки для моего приложения.
Например, допустим, у меня есть блок действия, который получает целые числа и записывает их в базу данных. Когда я настраиваю этот блок действий, мне кажется, что я просто даю ему функцию без сохранения состояния для выполнения всякий раз, когда он получает данные.
Однако кажется, что этот блок должен отвечать за установление и мониторинг соединения с базой данных, которое, следовательно, заставляет блок потока данных иметь состояние.
Кроме того, скажем, я хочу, чтобы этот блок действий имел свойство «масштабирования», при котором он может масштабировать данные перед записью в базу данных. Я также хочу, чтобы это свойство масштабирования было регулируемым, чтобы кто-то мог изменить масштабный коэффициент на лету.
В обоих этих случаях блок действий требует знания некоторого состояния.
Какова типичная процедура построения блоков потока данных, которые обладают состоянием?