常规方法和异步方法有什么区别(OnGet vs OnGetAsync)
What is the difference between regular and Async methods (OnGet vs OnGetAsync)
我开始学习 Razor Pages 的工作原理,教程提到了 OnGet 和 OnPost,还提到我们也有异步选项:OnGetAsync 和 OnPostAsync。但是他们没有提到它们是如何工作的,显然它们是异步的,但是如何呢?他们使用 AJAX 吗?
public void OnGet()
{
}
public async Task OnGetAsync()
{
}
OnGet
和 OnGetAsync
之间没有实际区别。 OnGetAsync
只是包含在发出 GET 请求时应执行的异步代码的方法的命名约定。您可以省略 Async
后缀,但仍然使方法异步:
public async Task OnGet()
{
...
await ....
...
}
异步方法是在执行时释放线程的方法,以便在执行结果可用之前可以将其用于其他用途。您可以在此处详细了解异步方法的工作原理:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/#BKMK_WhatHappensUnderstandinganAsyncMethod
您不能在同一个 Razor 页面中同时拥有 Onget
和 一个 OnGetAsync
处理程序。框架认为它们是相同的。
我开始学习 Razor Pages 的工作原理,教程提到了 OnGet 和 OnPost,还提到我们也有异步选项:OnGetAsync 和 OnPostAsync。但是他们没有提到它们是如何工作的,显然它们是异步的,但是如何呢?他们使用 AJAX 吗?
public void OnGet()
{
}
public async Task OnGetAsync()
{
}
OnGet
和 OnGetAsync
之间没有实际区别。 OnGetAsync
只是包含在发出 GET 请求时应执行的异步代码的方法的命名约定。您可以省略 Async
后缀,但仍然使方法异步:
public async Task OnGet()
{
...
await ....
...
}
异步方法是在执行时释放线程的方法,以便在执行结果可用之前可以将其用于其他用途。您可以在此处详细了解异步方法的工作原理:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/#BKMK_WhatHappensUnderstandinganAsyncMethod
您不能在同一个 Razor 页面中同时拥有 Onget
和 一个 OnGetAsync
处理程序。框架认为它们是相同的。