Seq<Async<'T>> либо есть ли что-то наподобие AsyncSeq.Parallel c maxDegreeOfParallelism?
такого нет. С ограничением параллелизма есть только поглощающая операция https://github.com/fsprojects/FSharp.Control.AsyncSeq/blob/e6bf47a0baabf256f26162093b873fc9e1ea7049/src/FSharp.Control.AsyncSeq/AsyncSeq.fsi#L186 А с похожей сигнатурой на твою вообще ничего нет, очень странное ты хочешь! Может ты это хочешь на самом деле? https://github.com/fsprojects/FSharp.Control.AsyncSeq/blob/e6bf47a0baabf256f26162093b873fc9e1ea7049/src/FSharp.Control.AsyncSeq/AsyncSeq.fsi#L421
Да, мне нужно в итоге получить 'T list какой-нибудь, но хотелось бы ограничить максимальное количество запущенных async'ов.
нуууу, есть один способ...
let toListThrottled parallelism asSeq = async { let arr = ResizeArray() do! AsyncSeq.iterAsyncParallelThrottled parallelism (fun x -> async {arr.Add x}) asSeq return arr }
Нихуя себе Что это такое
шо, обычный AsyncSeq?
Я про ResizeArray Впервые вижу
Обсуждают сегодня