Вопросы по теме 'tpl-dataflow'

BufferBlock потока данных TPL с приоритетом
Это должно быть что-то очень естественное, мне было интересно, есть ли готовая реализация Prioritized BufferBlock из библиотеки TPL DataFlow?
1484 просмотров

Потоки в С# для создания распределенной DFS
Я пытался реализовать распределенный поиск в глубину в С#. Я был успешным до определенного момента, но получил ошибку синхронизации. Я не могу исправить ошибку. То, что я пытаюсь сделать, это заставить каждый узел общаться друг с другом, используя...
698 просмотров

Как распространить потолок сообщений на все блоки потока данных?
Интересно, есть ли способ установить максимальное количество элементов / сообщений, которое может содержать очередь в блоке потока данных (либо буферный блок, либо очередь блока действий), и распространить такой потолок вверх по потоку на другие блоки...
424 просмотров

Поток данных TPL, запутавшийся в дизайне ядра
Я использую TPL Dataflow совсем немного, но спотыкаюсь о проблеме, которую не могу решить: У меня есть следующая архитектура: BroadCastBlock<List<object1>> -> 2 разных TransformBlock<List<Object1>, Tuple<int,...
1996 просмотров

Блоки потока данных TPL внутри дуплекса WCF
Я новичок в SO, пожалуйста, потерпите меня. У меня есть служба WCF с контрактом на дуплексную службу. Этот сервисный контракт имеет операционный контакт, который предполагает длительную обработку данных. Я вынужден ограничить количество...
740 просмотров

Есть ли альтернатива C# TPL Dataflow для C++?
Недавно я разместил вопрос о Использование делегатов для имитации подключенных объектов. где я получил отличный ответ об использовании библиотеки TPL DataFlow для очень простой и чистой разработки решения для моего приложения. Проблема в том, что...
937 просмотров

Политика повторных попыток в ITargetBlock ‹TInput›
Мне нужно ввести в рабочий процесс политику повтора. Допустим, есть 3 блока, которые связаны таким образом: var executionOptions = new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 3 }; var buffer = new BufferBlock<int>(); var...
1540 просмотров
schedule 02.06.2023

Правильный способ фильтрации BlockBuffer.RecieveAsync
Добрый день. У меня есть сетка потока данных TPL для вызовов rpc Он имеет два несвязанных потока, которые в упрощенном виде выглядят так: Выходной поток: BlockBuffer для хранения вывода ActionBlock для отправки вывода на сервер и...
328 просмотров

MaxDegreeOfParallelism блокирует основной поток?
У меня есть следующий код, и он отлично работает: private void BtBasicIntroClick(object sender, EventArgs e) { var stopwatch = new Stopwatch(); stopwatch.Reset(); stopwatch.Start(); var...
380 просмотров
schedule 27.02.2024

Как реализовать в TPL непрерывно работающие блоки потока данных?
У меня есть настройка блока потока данных производителя / потребителя с использованием BufferBlock и ActionBlock, и он отлично работает внутри консольного приложения; После добавления всех элементов в BurfferBlock и связывания BufferBlock с другими...
4751 просмотров

Связанный блок не завершается
Я начинаю с TPL DataFlow. Я создал следующий рабочий код. readFilesBlock — это BufferBlock . Он заполняется следующим образом: public async void ReadItems(ITargetBlock<SourceCodeFile> target) { foreach(var item in Source) {...
100 просмотров

Поток данных Microsoft TPL для Windows Phone
Как известно, Microsoft TPL Dataflow поддерживает следующие платформы: .NET Framework 4.5 .NET для приложений Магазина Windows Переносимые библиотеки классов но нет поддержки Windows Phone 8. Какие есть альтернативы для замены...
299 просмотров

TPL DataFlow, связывать блоки с приоритетом?
Можно ли связать два или более источника с одним блоком ITargetBlock (например, ActionBlock) с помощью блоков TPL.DataFlow и установить приоритетность источников? e.g. BufferBlock<string> b1 = new ... BufferBlock<string> b2 = new...
1866 просмотров
schedule 29.12.2022

TPL DataFlow против BlockingCollection
Я понимаю, что BlockingCollection лучше всего подходит для шаблона потребитель/производитель. Однако когда мне следует использовать ActionBlock из библиотеки TPL DataFlow ? Мое первоначальное понимание заключается в том, что для операций...
4076 просмотров

максимальная степень параллелизма потока данных tpl
Я создаю конвейер, используя поток данных TPL. Скажем, у меня есть конвейер, состоящий из четырех блоков TransformBlock. GetDataFromDatabase ProcessData1 ProcessData2 SendDataToRestService Каждый из них может (вероятно, будет) длительной...
1121 просмотров

Регулирование асинхронных задач
Я хотел бы запустить кучу асинхронных задач с ограничением количества задач, ожидающих завершения в любой момент времени. Допустим, у вас есть 1000 URL-адресов, и вы хотите, чтобы одновременно было открыто только 50 запросов; но как только один...
27514 просмотров

В потоке данных TPL можно ли изменить DataflowBlockOptions после создания блока, но до его использования?
... и подействует ли это? Я бы хотел отложить настройку свойства ExecutionDataflowBlockOptions.SingleProducerConstrained до тех пор, пока я не буду готов связать сеть вместе. (Потому что я хочу отделить создание блоков с их семантикой от...
763 просмотров

Как безопасно использовать SmtpClient.SendAsync в многопоточном приложении
В своем приложении я использую ActionBlock из библиотеки Dataflow для отправки предупреждений по электронной почте с помощью SmtpClient.SendAsync() , который не блокирует вызывающий поток ( ActionBlock получает данные от BufferBlock , а блоки...
657 просмотров

Альтернатива ActionBlock Framework 4 rx
Меня интересует реализация ActionBlock для Framework 4.0, так как кажется, что TPL.Dataflow не поддерживается для Framework 4.0. В частности, меня интересует случай конструктора, который получает делегат Func‹TInput, Task› и случай...
392 просмотров
schedule 02.06.2023

Поток данных TPL, MaxDegreeOfParallelism против балансировки нагрузки
Через поток данных TPL можно назначить MaxDegreeOfParallelism для параллельной работы блока, другой способ - «сбалансировать нагрузку», подключив источник к нескольким целевым объектам, ограничив BoundedCapacity каждого целевого блока. Вопрос, в...
434 просмотров
schedule 30.09.2023