【发布时间】:2018-01-28 07:36:36
【问题描述】:
我正在尝试取消包含长时间运行的阻塞方法调用的任务。我的问题是,在长时间运行的操作完成之前,执行不会返回给调用者。 (即使它已被取消。)
Public Class DebugForm
Private Sub DebugForm_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim cts As New CancellationTokenSource
Task.Run(Sub()
DoLongRunningBlockingWork()
cts.Token.ThrowIfCancellationRequested()
End Sub, cts.Token)
'Simulate cancelling after a second.
Threading.Thread.Sleep(1000)
cts.Cancel()
End Sub
Private Sub DoLongRunningBlockingWork()
Threading.Thread.Sleep(30000)
Debug.WriteLine("Completed")
End Sub
End Class
【问题讨论】:
标签: .net vb.net task cancellation