Допустим, я использую блоки потока данных в .NET. Утверждается, что «эта модель потока данных продвигает программирование на основе акторов». Это именно то, что я хочу здесь получить.
Однако, если я обрабатываю сообщения, скажем, из BufferBlock<T>
и в обработчике сообщения я решу использовать async
/await
, это приведет к разветвлению выполнения на текущий поток и рабочий поток для ожидаемой задачи.
Есть ли способ предотвратить одновременное выполнение в действующем/обработчике сообщений здесь?
это нормально, если ожидаемая задача выполняется с использованием неблокирующих операций ввода-вывода с собственными обратными вызовами. Но мне бы очень хотелось, чтобы любой код .NET выполнялся только синхронно.