明確な質問:
Web およびローカル リソースにアクセスする次のスクリプトがあります。Web 接続を N (Web サイトが遅い) に制限したいので、ローカル リソースへのアクセス ( executeLocalNetworkProcess
) が他の Web 要求をブロックしないようにする必要があります。(したがって、常に N 個の Web 要求を実行します)。
項目が非常に少ないカテゴリもあれば、項目が多いカテゴリもあります。Web 接続を利用するには、すべてのカテゴリのすべてのアイテムに対して並列実行を実行する必要があります。
let categories = getCategories() // get a seq of category from web service
for c in categories do
getItemsByCategory c // returns a seq of item from web
|> Seq.iter (fun (item, _) -> // Want to process N items in parallel
getMoreDataFromWeb item // from web
executeLocalNetworkProcess item // local disk/network access; may take a while
downloadBigFile item // from web
)
F# で実装する最善の方法は何ですか?