http://fsharp.web.fc2.com/#非同期ワークフロー
を参考にさせていただいた。
[<EntryPoint>]
let main args =
let task1 = async { while true do printf "a" }
let task2 = async { while true do printf "b" }
Async.RunSynchronously (Async.Parallel [task2]) ①
Async.Start task1 ②
0
これだと、bしか表示されない。つまり、①が終わらない限り、②は実行されない。
①と②を逆にすると
[<EntryPoint>]
let main args =
let task1 = async { while true do printf "a" }
let task2 = async { while true do printf "b" }
Async.Start task1 ②
Async.RunSynchronously (Async.Parallel [task2]) ①
0
これだと、bとaが交互に表示される。つまり、②が終わらなくても、①が実行される。
以前はStartはSpawn、RunSynchronouslyはRunだった?ようです。
0 件のコメント:
コメントを投稿