Я занимаюсь разработкой проекта на основе шаблона потока данных. Для этого я использую библиотеку TPL Dataflow, из. NET.
Я узнал об этой библиотеке совсем недавно, поэтому я все еще ладья ie с небольшими знаниями. Я пытаюсь построить трубопровод из нескольких блоков. Первый блок начинается со списка интерфейсов конфигурации в его входном стеке. На основе каждого объекта конфигурации этот блок создает объект, который будет загружать список URL-адресов из файла. После загрузки URL я хотел бы поместить каждый из них по отдельности в стек вывода для этого блока.
Моя проблема в том, что я не могу найти способ получить функцию преобразования получить объект ввода и вернуть список выходов, которые будут помещены в стек по отдельности. Я что-то здесь упускаю?
private async Task<Uri> LoadUrl(IUrlLoaderSettings loaderSettings)
{
IUrlLoader newLoader = CreateSeedLoader(loaderSettings);
List<Uri> urls = await newLoader.LoadAsync().ConfigureAwait(false);
foreach (Uri url in urls)
{
// each url loaded should be posted on output stack.
}
return null;
}
// Url Loader block.
TransformBlock<IUrlLoaderSettings, Uri> loaderBlock = new TransformBlock<IUrlLoaderSettings, Uri>(loaderSettings => LoadUrl(loaderSettings));
В основном я хочу, чтобы входной стек имел объекты конфигурации, каждый объект генерирует список выходных данных. Я не хочу, чтобы этот список помещался непосредственно в стек вывода, потому что я хочу, чтобы следующий блок обрабатывал каждый URL отдельно, а не как блок.
Заранее спасибо!