Task.Wait Method (CancellationToken)

Waits for the cancellable Task to complete execution.

Namespace:  System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Sub Wait ( _
	cancellationToken As CancellationToken _
)

Parameters

cancellationToken
Type: System.Threading.CancellationToken

A CancellationToken to observe while waiting for the task to complete.

ExceptionCondition
OperationCanceledException

The cancellationToken was canceled.

ObjectDisposedException

The Task has been disposed.

AggregateException

The Task was canceled -or- an exception was thrown during the execution of the Task. If the task was canceled, the AggregateException contains an OperationCanceledException in its InnerExceptions collection.

The following example instantiates a CancellationTokenSource object and runs a task that calls its Cancel method to request a cancellation. It runs a second task that enters a long-running loop. The Wait method is called inside a try/catch block and is passed the cancellation token (CancellationToken object) from the CancellationTokenSource object. Because cancellation was requested, the call to the Wait method throws an OperationCanceledException exception.

Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim cts As New CancellationTokenSource
      Dim token As CancellationToken = cts.Token

      Task.Run( Sub()
                   cts.Cancel
                   If token.IsCancellationRequested Then
                      Console.WriteLine("Cancellation requested in Task {0}.", 
                                        Task.CurrentId)
                   End If       
                End Sub, token)
      Dim t2 As Task = Task.Run( Sub()
                                    For ctr As Integer = 0 To Int32.MaxValue
                                    Next
                                    Console.WriteLine("Task {0} finished.",
                                                      Task.CurrentId)
                                 End Sub)
      Try
         t2.Wait(token)
      Catch e As OperationCanceledException
         Console.WriteLine("OperationCanceledException in Task {0}: The operation was cancelled.",
                           t2.Id)
      End Try 
   End Sub 
End Module 
' The example displays the following output: 
'       Cancellation requested in Task 1. 
'       OperationCanceledException in Task 2: The operation was cancelled.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft