Question

When wrapping an asynchronous operation in F# with Async.StartAsTask the returned type will be of Task<unit>. This makes users of an interface depend on the F# core libraries. Is there a recommended practice to avoid this, or is it generally the accepted behaviour to leave it at it's default?

Was it helpful?

Solution

You can simply upcast the Task<Unit> to a Task as you don't need the access to the generic result.

E.g.

let taskOfUnit = asyncOfUnit |> Async.StartAsTask
taskOfUnit :> Task
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top