В чем разница между обычными и асинхронными методами (OnGet против OnGetAsync) - PullRequest
0 голосов
/ 19 октября 2018

Я начал изучать, как работают Razor Pages, в руководствах упоминаются OnGet и OnPost, а также упоминается, что у нас также есть параметры асинхронности: OnGetAsync и OnPostAsync.Но они не упоминают, как они работают, очевидно, они асинхронные, но как?они используют AJAX?

public void OnGet()
{
}


public async void OnGetAsync()
{
}

1 Ответ

0 голосов
/ 19 октября 2018

Фактической разницы между OnGet и OnGetAsync нет.OnGetAsync - это просто соглашение об именах для методов, которые содержат асинхронный код, который должен выполняться при выполнении запроса GET.Вы можете опустить суффикс Async, но при этом сделать метод асинхронным:

public async Task OnGet()
{
    ...
    await ....
    ...
}

Асинхронные методы - это методы, которые освобождают свои потоки во время их выполнения, чтобы его можно было использовать для чего-то другого до результатаисполнение доступно.Вы можете прочитать больше о том, как работают асинхронные методы: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/#BKMK_WhatHappensUnderstandinganAsyncMethod

Вы не можете иметь обработчик Onget и * OnGetAsync на одной странице Razor.Каркас видит их как одинаковые.

...