させてくれた印象でした!in f#は、一連の割り当てを並行して実行するのに十分なほどスマートでした。ただし、次のサンプルは異なる動作を示しており、a、b、cの割り当ては同期して実行されているようです。
let sleep sec =
async
{
System.Threading.Thread.Sleep(sec * 1000)
return sec
}
let bar = async
{
let! a = sleep 1
let! b = sleep 3
let! c = sleep 3
return a+b+c
}
let foo = Async.RunSynchronously(bar)
printfn "%d" foo
それはどうあるべきか/あるべきか?
そして、a、b、cを並行して実行したい場合、Async.Parallell ... |> Async.RunSynchronously ...を使用することになっていますか?
上記のサンプルはもちろん役に立ちません。実際のユースケースは、DBにクエリを実行し、同時にいくつかのWebサービスを呼び出すようなものです。