常规方法和异步方法有什么区别(OnGet 与 OnGetAsync)

mar*_*nda 6 asp.net-core razor-pages

我开始学习 Razor Pages 的工作原理,教程提到 OnGet 和 OnPost,还提到我们也有异步选项:OnGetAsync 和 OnPostAsync。但是他们没有提到他们是如何工作的,显然他们是异步的,但是如何呢?他们使用 AJAX 吗?

public void OnGet()
{
}


public async Task OnGetAsync()
{
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ind 9

OnGet和之间没有实际区别OnGetAsyncOnGetAsync只是包含异步代码的方法的命名约定,这些异步代码应在发出 GET 请求时执行。您可以省略Async后缀,但仍使该方法异步:

public async Task OnGet()
{
    ...
    await ....
    ...
}
Run Code Online (Sandbox Code Playgroud)

异步方法是在执行时释放线程的方法,以便可以将其用于其他用途,直到执行结果可用。您可以在此处阅读有关异步方法如何工作的更多信息: https: //learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/#BKMK_WhatHappensUnderstandanAsyncMethod

您不能在同一 Razor 页面中同时拥有Onget 处理程序。OnGetAsync该框架认为它们是相同的。