/ / Правят ли асинхронни повиквания в рамките на надежден паралел, основан на актьорския завой? - c #, лазур, плат за лазурно обслужване

Дали асинхронните обаждания в рамките на надежден актьор се превръщат в паралелност? - c #, лазурен, лазурно-сервизен плат

Имам следния метод в надежден участник в сервизна тъкан:

async Task IRoomActor.ReportUpdateAsync(SensorCacheItem sensorItem, CancellationToken cancellationToken)
{
try
{
//get the state of this room
RoomState roomState = await GetOrCreateState(sensorItem.RoomId, cancellationToken);

//update state based on the sensor cache item passed in
var existingItem = roomState.Sensors.FirstOrDefault(s => s.SensorRowId == sensorItem.SensorRowId);
if (existingItem != null)
{
roomState.Sensors.Remove(existingItem);
}

roomState.Sensors.Add(sensorItem);

//update status based on sensors
ResolveStatusFromSensors(roomState, sensorItem);

//save or update the state
await StateManager.AddOrUpdateStateAsync(ServiceConstants.RoomActorStateName, roomState,
(key, value) => roomState, cancellationToken);

await SaveStateAsync();

//send updates to Floor Actor
await PropagateStateToParent(roomState, cancellationToken);
}
catch (Exception e)
{
ActorEventSource.Current.ActorMessage(this, $"Exception thrown in RoomActor.ReportUpdateAsync(): {e.StackTrace}");
throw;
}
}

Ще очакват ли очакваните обаждания в този метод едновременност на надеждния актьор?

Отговори:

1 за отговор № 1

Не, това няма да окаже влияние върху паралелността, базирана на завой, тъй като цялата задача, върната от ReportUpdateAsync (включително вътрешното я чака), трябва да приключи, преди да бъде разрешено следващото повикване.