public async Task<IEnumerable<Task>> StartAsync(IComponentHostConfigurationProvider configurationProvider, CancellationTokenSource cancellationTokenSource)
{
IEnumerable<ComponentConfiguration> componentConfigurations = await configurationProvider.GetConfigurationAsync();
_cancellationTokenSource = cancellationTokenSource;
List<Task> tasks = new List<Task>();
foreach (ComponentConfiguration componentConfiguration in componentConfigurations)
{
_logger?.Verbose(
$"Starting {componentConfiguration.Instances} instances of {componentConfiguration.ComponentIdentity}");
for (int instance = 0; instance < componentConfiguration.Instances; instance++)
{
tasks.Add(StartTask(componentConfiguration.ComponentIdentity, componentConfiguration.Factory, componentConfiguration.RestartEvaluator));
}
}
return tasks;
}