//Add timeout to async module. module Async = /// Async.Start with timeout in seconds let StartWithTimeout (timeoutSecs:int) (computation:Async) = let c = new System.Threading.CancellationTokenSource(timeoutSecs*1000) Async.Start(computation, cancellationToken = c.Token) // Another way to setup timeout to existing async computation would be: // Async.StartChild(myComputation(), timeout)