Bu muhtemelen F # 'daki en temel şeylerden biridir, fakat fark ettim ki, bu durumun arkasında ne olduğuna dair hiçbir fikrim yok.İş parçacığı engellenmeden bekleyin. - Nasıl?
let testMe() =
async { printfn "before!"
do! myAsyncFunction() // Waits without blocking thread
printfn "after!" }
testMe |> Async.RunSynchronously
Neler oluyor do! myAsyncFunction()
? Devam etmeden önce myAsyncFunction
'un bitmesini beklediğinin farkındayım. Ama iş parçacığını engellemeden bunu nasıl yapabilir?
En iyi tahminle do! myAsyncFunction()
sonra her şey .. myAsyncFunction()
çalışmayı tamamlandığında kez myAsyncFunction()
, üzerinde planlandı aynı iş parçacığı üzerinde işletilirse devamı olarak birlikte geçti ama sonra tekrar, bu sadece bir tahmin olmasıdır.
Tahminin doğru, ben devam parçacığı havuzu, mutlaka aynı iplikle sonraki uygun iş parçacığı üzerinde işletilecek düşünüyorum rağmen. – Daniel