, Кроме того, если ваш код переносим, ​​проверка того, что проблемы также возникают на компьютере с Windows, 1) полезна, чтобы увидеть, являются ли проблемы специфичными для платформы, и 2) если нет, у вас будет гораздо больше инструментов в вашем распоряжении. ,

могу создать несколько длинных фоновых потоков вSelf Hosted Self Contained ASP.NET Core Microservice чей срок службы такой же, как срок службы микро-службы? Таким образом, информация, полученная из потоков, может быть отправлена ​​в ответ на запросы.

Пробовал данный код, но он снижает производительность HTTP-запроса, когда фоновые потоки заняты. Основной метод файла Program.cs:

static void Main(string[] args)
{
    //Start background thread1
    //Start background thread2
    //Around 10 background threads
    //Start host
    var host = new WebHostBuilder()
        .UseKestrel()
        .UseUrls(ServerUrl)
        .UseConfiguration(config)
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .ConfigureServices(s => s.AddRouting())
        .Configure(app => app.UseRouter(r => { (new Router()).Route(r); }))
        .Build();
    host.Run();
}

Темы работают следующим образом:

Thread t1 = new Thread(StartWork);
t1.IsBackground = true;
t1.Start();

public void StartWork()
{
    while (ApplicationIsRunning)
    {
        //Get database info >> login into remote devices (SSH) >> get information >> process information >> update application variables and database
        Thread.Sleep(10000);
    }
}

Загрузка ЦП составляет всего 1-5%, когда потоки заняты, но при этом производительность http-запросов очень низкая. После перехода в режим сна производительность снова улучшается.

Проблема заключается в методе подключения клиента SSH. В какой-то момент метод подключения не отвечает, и это также влияет на все остальные потоки. Это странно!

Renci.SshNet.SshClient sshClient = New Renci.SshNet.SshClient(sshConnectionInfo);
sshClient.Connect();

Если по какой-либо причине один поток занят соединением, это не должно влиять на другие потоки.

Ответы на вопрос(2)

Ваш ответ на вопрос