private async Task SubscribeToAllDispatchersAsync() { var tasks = new List <Task>(); var objref = await GrainClient.CreateObjectReference <IAnalysisObserver>(this); this.dispatchersStatus.Clear(); for (var i = 0; i < AnalysisConstants.StreamCount; ++i) { var dispatcherId = string.Format(AnalysisConstants.StreamGuidFormat, i); var dispatcherGuid = Guid.Parse(dispatcherId); var dispatcher = OrleansEffectsDispatcherManager.GetEffectsDispatcherGrain(GrainClient, dispatcherGuid); this.dispatchersStatus.Add(dispatcherGuid, EffectsDispatcherStatus.Busy); var task = dispatcher.Subscribe(objref); //await task; tasks.Add(task); } await Task.WhenAll(tasks); }