У меня есть приложение Silverlight 4, использующее службы RIA. Один из методов обслуживания RIA делает что-то похожее на следующее:
List<Foo> fooList = this.GetListOfFoo();
AnotherService aService = new AnotherService();
foreach (Foo foo in fooList)
{
aService.SomeMethodCompleted += this.methodCompleted;
aService.SomeMethodAsync(foo);
}
return fooList;
SomeMethodAsync затем вносит изменения в foo, который является ссылочным типом.
this.methodCompleted вызывается для каждого Foo, но обновления экземпляров Foo не видны клиенту Silverlight. Я предполагаю, что ничто не будет автоматически ожидать завершения всех асинхронных вызовов, прежде чем служба RIA вернется к клиенту Silverlight.
Мой вопрос: могу ли я координировать завершение асинхронных вызовов перед возвратом к клиенту Silverlight? Или я ограничен только синхронными вызовами в службе RIA?