Возможно ли использовать рабочие процессы Async в F #, выполнить несколько параллельных операций async параллельно, но не дождаться результата? Это имеет смысл? :)Рабочие процессы Async в F # - Выполняются параллельно и не ждут результата
Так что вместо этого:
let runAll() =
urlList
|> Seq.map fetchAsync
|> Async.Parallel
|> Async.RunSynchronously
|> ignore
ли что-то вроде этого:
let runAll() =
urlList
|> Seq.map fetchAsync
|> Async.Parallel
|> ignore
Конечно, мне нужно, чтобы начать работу, поэтому я попытался просто начать выполнение асинхронного в функции fetchAsync, то он работает только путем вызова функции:
let runAll() =
urlList
|> Seq.map fetchAsync
|> ignore
Но тогда мой код больше не распараллелен:/
Возможно, я пропустил что-то очевидное.
Спасибо за помощь!
Спасибо! Но мой код теперь больше не распараллелен? –
Код по-прежнему распараллелен, потому что вы вызываете 'Async.Start' для каждого элемента списка. Штраф в том, что у вас нет способа узнать, когда это будет сделано. –
Спасибо, Джон! Это полезно. –