Как библиотека предоставляет методы async, если это плохая практика для Task.Run?

Две разные копии для проверки того же проекта

В моем случае проблема заключалась в невозможности дифференциации Eclipse между двумя разными копиями одного и того же проекта. У меня есть одна блокировка на багажнике (контроль версий SVN), а другой - в одной ветви за раз. Я опробовал одно изменение в рабочей копии как тестовый пример JUnit, который включал в себя извлечение частного внутреннего класса для самостоятельного публичного класса, и пока он работал, я открываю другую копию проекта, чтобы посмотреть вокруг на другой часть кода, которая нуждается в изменениях. В какой-то момент NoClassDefFoundError появился, жалуясь, что частного внутреннего класса не было; двойной щелчок в трассировке стека привел меня к исходному файлу с неправильной копией проекта.

Закрытие внешней копии проекта и запуск тестового примера снова избавилось от проблемы.

-1
задан UberFace 13 July 2018 в 12:20
поделиться

1 ответ

В приложении ASP.Net мы склонны оценивать запросы / сек за отдельные периоды ответа1 - конечно, если мы напрямую торгуем друг против друга. Поэтому мы не пытаемся сосредоточиться на мощности CPU при удовлетворении одного запроса.

И действительно, фокусирование большей мощности процессора на задаче - это то, что Task.Run для - это для когда у вас есть четкий фрагмент работы, вы не можете сделать это в текущем потоке (потому что у него есть своя собственная работа), и когда вы можете использовать как можно больше CPU.

В ASP.Net, где async светит, когда мы имеем дело с I / O. Неприятные медленные вещи, такие как доступ к файловой системе или разговор с базой данных по сети. И удивительно, что на самом низком уровне система ввода-вывода окон уже асинхронна, и мы не должны посвящать поток только ожиданию завершения дел .

So , вы не будете использовать Task.Run. Вместо этого вы будете искать объекты, связанные с I / O, которые выставляют методы Async. И эти методы сами по себе, как указано выше, не будут использовать Task.Run. Это позволяет нам прекратить использование любых потоков для обслуживания нашего конкретного запроса, пока не будет сделано никакой работы, и поэтому улучшите метрику запросов /.


1Это обобщение, но сайты с одним пользователем / запросом ASP.Net редко встречаются в моем опыте.

2
ответ дан Damien_The_Unbeliever 17 August 2018 в 12:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: