Я проверяю влияние использования асинхронного режима и ожидаю, так как я понимаю, что он может выполнять несколько вызовов, не блокируя поток.
Я использовал эту ссылку в качестве ссылки
Вот мой код на контроллере:
[Route("api/email")]
public class EmailController : Controller
{
private ContentManagement _contentManagement;
public EmailController(ContentManagement contentManagement)
{
_contentManagement = contentManagement;
}
[HttpGet("async")]
public async Task<IActionResult> GetAsync()
{
DateTime cur = DateTime.Now;
var name = await _contentManagement.GetNameAsync();
return Ok($"Value : {name} \nStarted : {cur.TimeOfDay}\n Ended : {DateTime.Now.TimeOfDay}");
}
[HttpGet("normal")]
public IActionResult Get()
{
DateTime cur = DateTime.Now;
var name = _contentManagement.GetName();
return Ok($"Value : {name} \nStarted : {cur.TimeOfDay}\n Ended : {DateTime.Now.TimeOfDay}");
}
}
Класс contentManagement точно такой же, как и в приведенной выше ссылке.
Я обнаружил, что когда я вызываю асинхронный веб-интерфейс одновременно, они выполняют в точности то же самое, что и веб-интерфейс синхронизации, выполняя задачи последовательно.
Вот мои результаты:
Кто-нибудь может оставить отзыв, если я что-то упустил или сделал что-то не так?
UPDATE:
- Поэтому, когда я попробовал это на двух устройствах, одно на моем компьютере, а другое на моем телефоне, кажется, что они работают одновременно (независимо от того, является ли это асинхронным / ожидающим или просто обычным способом синхронизации);
- Если это на одном устройстве, они работают последовательно (как показано на рисунке выше)