Разумно ли использовать Thread.Sleep (int) в ASP.NET или мне следует использовать другой метод?
-
26-10-2019 - |
Вопрос
Я хочу ввести небольшое ожидание во время некоторых функций тестирования, чтобы имитировать вызов сервера.Разумно ли его использовать Thread.Sleep(int)
ввести ожидание или есть лучший способ заставить сервер ждать?
Обратите внимание, я буду делать паузу достаточно долго, чтобы визуально увидеть достаточное отставание, даже если я не ожидаю увидеть такую задержку в самом приложении.Это для того, чтобы я мог визуализировать фактическую задержку, которая мог бы произойти.
Я планирую запустить это как на локальном веб-сервере VS2010 debugger, так и в IIS 7.Я работаю над .NET 3.5
Решение
Thread.Sleep(int)
это то, что я бы использовал.
Другие советы
Если вы используете MVC и SessionState, ваши запросы будут автоматически сериализованы, поэтому, если вы проверяете условия гонки случайным образом Thread.Sleep()
значение, то запрос B никогда не завершится раньше запроса A, даже если время ожидания было меньше.
Это идеально подходит для вашего тестового sceanrio.Пока вы не проводите стресс-тестирование / нагрузочное тестирование или вызовы служб выполняются синхронно, замена их простым режимом ожидания дает близкое приближение к поведению сервера.
Если ваш код использует асинхронные вызовы служб, вы можете захотеть эмулировать немного больше вызовов служб и перевести спящие режимы в отдельные потоки, как если бы вы вызывали service, но это заняло много времени.Таким образом, ASP.Net будет вести себя нормально, и вы даже можете попробовать некоторое нагрузочное тестирование.