Async.StartAsTask<'T> Method (F#)
Executes a computation in the thread pool. Returns a Task that will be completed in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled) If no cancellation token is provided then the default cancellation token is used.
Namespace/Module Path: Microsoft.FSharp.Control
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
static member StartAsTask : Async<'T> * ?TaskCreationOptions * ?CancellationToken -> Task<'T>
// Usage:
Async.StartAsTask (computation)
Async.StartAsTask (computation, taskCreationOptions = taskCreationOptions, cancellationToken = cancellationToken)
Parameters
computation
Type: Async<'T>The computation to execute.
taskCreationOptions
Type: TaskCreationOptionsOptional task creation options.
cancellationToken
Type: CancellationTokenOptional cancellation token.
Return Value
A Task<TResult> object that represents the given computation.
Example
The following code example demonstrates the use of Async.StartAsTask.
open System.Windows.Forms
let bufferData = Array.zeroCreate<byte> 100000000
let async1 =
async {
use outputFile = System.IO.File.Create("longoutput.dat")
do! outputFile.AsyncWrite(bufferData)
}
let form = new Form(Text = "Test Form")
let button = new Button(Text = "Start")
form.Controls.Add(button)
button.Click.Add(fun args -> let task = Async.StartAsTask(async1)
printfn "Do some other work..."
task.Wait()
printfn "done")
Application.Run(form)
Platforms
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Version Information
F# Runtime
Supported in: 4.0
Silverlight
Not supported