Exemple #1
0
        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);
        }