TaskFactory를 사용하여 작업을 선언하고 있으며 심각한 의문을 가지고 있습니다.Task.Factory.StartNew --Wait()을 사용하여 계속 진행합니다.
생성시 continueWith를 선언하는 작업을 만들고 있는데, 나중에도 시작할 두 번째 작업 인 을 지정하지 않았습니다.
선언은 다음과 같이이다 :
Dim taskConta = Tasks.Task(Of DataSet).Factory.StartNew(
Function() FunctionToLaunch(parameter), TokenCancel.Token, Tasks.TaskCreationOptions.LongRunning)
taskConta.ContinueWith(New Action(Sub() Throw New TimeoutException("Exception Error"), System.Threading.Tasks.TaskContinuationOptions.OnlyOnFaulted)
당신이 볼 수 있듯이.
이
을 TaskContinuationOptions.OnlyOnFaulted 작업이 실행 된 다음 코드의 내 다음 라인은 다음과 같습니다 :
taskConta.Wait()
질문은 :
이 작업은 함께 선언 내 작업이 잘못되었으므로 .Wait()
을 사용했습니다. 코드를 계속 실행하기 전에 ContinueWith Action을 시작합니까? 대기열에 넣고 나중에 시작하겠습니까?
나중에 시작하는 경우 어느 정도 소요됩니까? 그럴 수 내 Throw Exception
범위 밖으로 시작할 수 있습니다. 나는 TaskFactory continueWith 큐가 작동하는 방법을 알고 싶습니다시겠습니까
taskConta.Wait()
If taskConta.Status <> Tasks.TaskStatus.RanToCompletion Then
Throw New TimeoutException("Message")
End If
:
나는 내가 좋아하는 뭔가를 할 수 알고있다.