예제 #1
0
        public async Task RunAsync(CancellationToken cancellationToken)
        {
            var hub = _hub.RunAsync(cancellationToken);

            var tasks = new List <Task>()
            {
                cancellationToken.WhenCanceled()
            };

            //start all modules
            if (!_inContainer)
            {
                foreach (var module in _modules)
                {
                    tasks.Add(module._RunAsync(cancellationToken));
                }
            }

            await Task.WhenAny(tasks.ToArray());
        }
예제 #2
0
        public async Task RunAsync(CancellationToken cancellationToken)
        {
            var tasks = new List <Task>
            {
                CreateTemporaryConnection(),
                _hub.RunAsync(cancellationToken)
            };

            //start all modules
            if (!_inContainer)
            {
                foreach (var module in _modules)
                {
                    tasks.Add(module._RunAsync(cancellationToken));
                }
            }

            tasks.Add(cancellationToken.WhenCanceled());

            await Task.WhenAll(tasks.ToArray());
        }