Задачи, которые «запланированы и ожидают выполнения», не выполняются - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть приложение .net Framework 4.6.1 aspnet MVC, которое работает до тех пор, пока я не обновлю ряд пакетов Nuget.Я отказался от большинства пакетов ключей, и проблема не устранена.В основном, когда мое приложение зависает, я вижу, что вызов GetListAsync сделан и никогда не возвращается.Это вызов SQL-сервера, использующего Dapper ORM, который я вернулся к известной хорошей версии, и это не решает проблему.Глядя на список задач, мне кажется, у меня есть 7 ожидающих задач и 5 задач, которые готовы к запуску, но по какой-то причине они не планируются.Глядя на мой рабочий ThreadPool, я вижу, что у меня есть достаточно много доступных потоков, и фактически эта проблема воспроизводится всякий раз, когда я просто запускаю свое приложение aspnet в dev, и приложение не загружается, кроме первого запроса.Любые идеи, почему у меня будет несколько запланированных задач, которые, кажется, никогда не будут выполнены, даже если я буду ждать в течение длительного периода времени?

enter image description here

1 Ответ

0 голосов
/ 16 июля 2019

Я столкнулся с такой ситуацией, когда у меня был поток пользовательского интерфейса с

while (true)
{
   var message = await Console.In.ReadLineAsync();
   //some message processing
}

, и некоторые другие асинхронные методы были вызваны без ожидания.И я решил эту проблему двумя способами:

Заменить все async void на async Task и в ожидании всех асинхронных методов.Но это не решенная проблема с блокировкой потока пользовательского интерфейса

И просто запустить

    await Task.Run(async () =>
    {
        while (true)
        {
            var message = await Console.In.ReadLineAsync();
           //some message processing
        }
    }

в другом потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...