Как мне заставить мои методы jquery вызывать мой контроллер mvc и мой контроллер mvc, чтобы одновременно выполнять 2 вещи?async jquery call to async mvc controller
Код jquery is doint fine. Он просто называет методы и продолжает двигаться, как я этого хочу.
$(document).ready(function() {
console.log("1");
getADsad();
console.log("2");
lala();
console.log("3");
});
function getADsad() {
$.ajax({
url: '/Configurator/Configure/Hello1',
type: 'POST',
dataType: 'json',
success: function (data) {
console.log(data + "hello1");
}
});
}
function lala() {
$.ajax({
url: '/Configurator/Configure/Hello2',
type: 'POST',
dataType: 'json',
success: function (data) {
console.log(data + "hello2");
}
});
Мой C# код с другой стороны, не делать две вещи одновременно:
[HttpPost]
public async Task<LoginViewModel> Hello1()
{
var str = await GetSlowstring();
return str;
}
[HttpPost]
public async Task<LoginViewModel> Hello2()
{
var str = await GetSlowstring();
return str;
}
public async Task<LoginViewModel> GetSlowstring()
{
await Task.Delay(10000);
LoginViewModel login = new LoginViewModel();
login.UserName = "HejsN";
return await Task.FromResult(login);
}
Комбинированный вызов должен принимать только немного больше, чем 10 секунд, если это будет сделано правильно, но теперь его берет двойной.
Нужно ли мне создать новый поток для звонков? Или это делается автоматически приложением?
EDIT:
Как проверить, что на стороне сервера не делать вещи параллельно? Является ли время между началом первого вызова «Hello1» и завершением «Hello2» более 20 секунд? MVC Framework автоматически управляет потоками, каждый запрос получает свой собственный поток. – drax
Я не уверен, что понимаю, что вы имеете в виду. Я могу видеть в моей консоли i chrome, что вызовы hello1 и hello2 вызываются одновременно. Но я также вижу, что он отличается от 10 секунд с момента их возвращения. Вы можете увидеть это в моем изображении, которое я добавил в редактировании. –
Да, это именно то, что я хотел знать. Обычно в этом сценарии используется состояние сеанса. Проверьте эту статью: http://www.stefanprodan.com/2012/02/parallel-processing-of-concurrent-ajax-requests-in-asp-net-mvc/ – drax