Skip to content

Multuple IHostedService registration #12544

@igor-moskvitin

Description

@igor-moskvitin

If i try to register two or more services, only one could work properly.
For example:

services.AddSingleton<IHostedService, ServiceA>();
services.AddSingleton<IHostedService, ServiceB>();

Implementations are simplest as possible:

public class ServiceA: IHostedService
    {
        public Task StartAsync(CancellationToken cancellationToken)
        {
            DoWork();
            return Task.CompletedTask;
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            return Task.CompletedTask;
        }

        private void DoWork()
        {
            while (true)
            {
                Console.WriteLine("ServiceA");
                Thread.Sleep(2000);
            }
        }
    }

and

public class ServiceB: IHostedService
    {
        public Task StartAsync(CancellationToken cancellationToken)
        {
            DoWork();
            return Task.CompletedTask;
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            return Task.CompletedTask;
        }

        private void DoWork()
        {
            while (true)
            {
                Console.WriteLine("ServiceB");
                Thread.Sleep(1000);
            }
        }
    }

In output getting messages only from ServiceA


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions