В моем случае проблема заключалась в невозможности дифференциации Eclipse между двумя разными копиями одного и того же проекта. У меня есть одна блокировка на багажнике (контроль версий SVN), а другой - в одной ветви за раз. Я опробовал одно изменение в рабочей копии как тестовый пример JUnit, который включал в себя извлечение частного внутреннего класса для самостоятельного публичного класса, и пока он работал, я открываю другую копию проекта, чтобы посмотреть вокруг на другой часть кода, которая нуждается в изменениях. В какой-то момент NoClassDefFoundError
появился, жалуясь, что частного внутреннего класса не было; двойной щелчок в трассировке стека привел меня к исходному файлу с неправильной копией проекта.
Закрытие внешней копии проекта и запуск тестового примера снова избавилось от проблемы.
В приложении ASP.Net мы склонны оценивать запросы / сек за отдельные периоды ответа1 - конечно, если мы напрямую торгуем друг против друга. Поэтому мы не пытаемся сосредоточиться на мощности CPU при удовлетворении одного запроса.
И действительно, фокусирование большей мощности процессора на задаче - это то, что Task.Run
для - это для когда у вас есть четкий фрагмент работы, вы не можете сделать это в текущем потоке (потому что у него есть своя собственная работа), и когда вы можете использовать как можно больше CPU.
В ASP.Net, где async светит, когда мы имеем дело с I / O. Неприятные медленные вещи, такие как доступ к файловой системе или разговор с базой данных по сети. И удивительно, что на самом низком уровне система ввода-вывода окон уже асинхронна, и мы не должны посвящать поток только ожиданию завершения дел .
So , вы не будете использовать Task.Run
. Вместо этого вы будете искать объекты, связанные с I / O, которые выставляют методы Async
. И эти методы сами по себе, как указано выше, не будут использовать Task.Run
. Это позволяет нам прекратить использование любых потоков для обслуживания нашего конкретного запроса, пока не будет сделано никакой работы, и поэтому улучшите метрику запросов /.
1Это обобщение, но сайты с одним пользователем / запросом ASP.Net редко встречаются в моем опыте.