I would like to start a background task without using the Await keyword. Instead I want to monitor the task at various points and restart it when necessary to update information in the background. Here is the method I am trying to call:
Public Async Function UpdateVehicleSummaries(p_vehicleID As Int32) As Task(Of Boolean)
Dim tempVehicle As Koolsoft.MARS.BusinessObjects.Vehicle
For Each tempVehicle In Vehicles
If p_vehicleID = 0 Or p_vehicleID = tempVehicle.VehicleID Then
Await UpdateVehicleStats(tempVehicle)
End If
Next
Return True
End Function
The code I am trying to start the task doesn’t seem to work and I’m not sure how to provide the parameter. I get an error that “Task(Of Boolean) cannot be converted to System.Action and or an error on the parameter”
Dim tempTask As Task
tempTask = New Task(UpdateVehicleSummaries(tempVehicleID))
tempTask.Start()
Any help would be appreciated.
Since
UpdateVehicleSummariesis already asynchronous, you should be abel to just do:The returned
Task(Of T)will be “hot” (running), but shouldn’t block, as theAwaitcall will immediately return control flow to the caller at that point.A more typical use of this method, if you need to perform other work while this runs, would be to do the following: