Перейдите к Инструментам в †’ Опции в †’ Проекты и Решения в †’ Сборка и Выполнение в †’ выходное многословие сборки проекта MSBuild - набор к "Нормальному" или "Подробному", и время изготовления появится в окне вывода.
Веб-приложение почти наверняка уже является многопоточным в среде хостинга (IIS и т. Д.). Если ваша страница привязана к процессору (и вы хотите использовать несколько ядер), то, возможно, использование нескольких потоков - плохая идея, поскольку когда ваша система находится под нагрузкой, вы уже используете их.
Время может ] help - это когда вы привязаны к вводу-выводу; Например, у вас есть веб-страница, которая должна взаимодействовать с 3 внешними веб-службами, разговаривать с базой данных и записывать файл (все не связанные). Вы можете выполнять это параллельно в разных потоках (в идеале, используя встроенные асинхронные операции, чтобы максимально увеличить использование порта завершения), чтобы сократить общее время обработки - и все это без чрезмерного воздействия на локальный процессор (здесь реальная задержка происходит в сети).
Конечно, в таких случаях вы также можете добиться большего, просто поставив работу в очередь в веб-приложении,
IMHO, вам следует избегать использования многопоточности в веб-приложении.
возможно, многопоточное приложение могло бы повысить производительность в стандартном приложении (с правильным дизайном), но в веб- приложения вы можете захотеть сохранить высокую пропускную способность вместо скорости.
но если у вас несколько одновременных подключений, возможно, вы можете использовать параллельный поток без глобального снижения производительности
Многопоточность - это метод, позволяющий выделить отдельному процессу больше времени, чтобы он работал быстрее. У него больше потоков, поэтому он потребляет больше циклов процессора. (От нескольких процессоров, если они у вас есть.) Для настольного приложения это имеет большой смысл. Но предоставление большего количества циклов ЦП веб-пользователю отнимет те же циклы у 99 других пользователей, выполняющих запросы одновременно! Так что технически это плохо.
Однако веб-приложение может использовать другие службы и процессы, использующие несколько потоков. Базы данных, например, не будут создавать отдельный поток для каждого пользователя, который к ним подключается. Они ограничивают количество потоков до нескольких, добавляя соединения в пул соединений для более быстрого использования. Пока есть доступные или объединенные соединения, пользователь будет иметь доступ к базе данных. Когда в базе данных заканчиваются соединения, пользователю придется подождать.
Итак, в основном, использование нескольких потоков может использоваться для веб-приложений, чтобы уменьшить количество активных пользователей в определенный момент! Это позволяет системе совместно использовать ресурсы с несколькими пользователями без перегрузки ресурса. Вместо этого пользователям просто нужно будет стоять в очереди, прежде чем наступит их очередь.
Это будет не многопоточность в самом веб-приложении, а многопоточность в службе, которая используется веб-приложением. В данном случае он используется как ограничение, позволяя быть активным только небольшому количеству потоков.
Это позволяет системе совместно использовать ресурсы с несколькими пользователями без перегрузки ресурса. Вместо этого пользователям просто нужно будет стоять в очереди, прежде чем наступит их очередь.Это будет не многопоточность в самом веб-приложении, а многопоточность в службе, которая используется веб-приложением. В данном случае он используется как ограничение, позволяя быть активным только небольшому количеству потоков.
Это позволяет системе совместно использовать ресурсы с несколькими пользователями без перегрузки ресурса. Вместо этого пользователям просто нужно будет стоять в очереди, прежде чем наступит их очередь.Это будет не многопоточность в самом веб-приложении, а многопоточность в службе, которая используется веб-приложением. В данном случае он используется как ограничение, позволяя быть активным только небольшому количеству потоков.
Чтобы извлечь выгоду из многопоточности, ваше приложение должно выполнять значительный объем работы, которая может выполняться параллельно. Если это не так, накладные расходы на многопоточность вполне могут превзойти преимущества.
По моему опыту, большинство веб-приложений состоят из ряда коротко работающих методов, поэтому, помимо параллелизма, уже предлагаемого средой хостинга, я бы сказал, что редко можно извлечь выгоду из многопоточности в отдельных частях веб-приложения. Вероятно, есть примеры, когда это принесет пользу, но я предполагаю, что это не очень распространено.
ASP.NET уже может порождать несколько потоков для параллельной обработки нескольких запросов, поэтому для простой обработки запросов редко бывает случай, когда вам нужно вручную порождать другой поток. Однако есть несколько необычных сценариев, с которыми я столкнулся, которые требовали создания другого потока:
Еще одна вещь, о которой следует помнить при реализации собственных потоков в ASP.NET - ASP.NET любит отключать свои процессы, если они какое-то время были неактивными. Таким образом, вы не должны полагаться на то, что ваш поток останется в живых навсегда. Это может быть прекращено в любой момент, и вам лучше быть к этому готовым.