提问人:Joe Tüscher 提问时间:10/25/2023 最后编辑:Theodor ZouliasJoe Tüscher 更新时间:10/25/2023 访问量:54
.NET Blazor 中的常见做法取消异步方法
Common practice cancel async methods in .NET Blazor
问:
我们目前正在 blazor 中设置 SPA,并使用 NavManager 在页面之间导航。 假设我们有两个页面:员工和客户。 这两个页面都包含一个简单的表格,里面有数据,这些数据来自数据库。
如果用户导航到“员工”页面,应用程序将异步加载数据库中的所有数据,如下所示:
var employees = await Database.Instance.Employee.GetAllActive();
现在有相当多的工作需要完成,以获取整个员工列表,因此加载所有数据需要一些时间。
如果用户现在切换到客户页面,则在加载所有员工之前,它将加载员工,直到完成。之后,将加载客户。
因此,现在用户需要等到所有员工都加载完毕,然后才能加载客户。
现在这是我的问题: 防止这样的事情发生的最佳方法是什么? 使用 CancellationTokens?或者我们还有什么可以使用的吗?
答: 暂无答案
上一个:C 语言中的线程同步问题#
评论
CancellationToken
可以从 ASP.Net 请求一直传递到 SqlClient。请注意:您不想取消进行更改的请求,否则您将不知道它是否已提交。但是,是的,无论如何,您可能应该重新考虑您在做什么。Post
IDisposable
Dispose