小编zzz*_*zzz的帖子

异步方法:在上一个操作完成之前在此上下文上启动第二个操作

我是 Blazor 的新手,没有太多使用任务的经验,所以希望我只是犯了一个愚蠢的错误。我有一个通过按下按钮调用的异步方法,但如果在 1-2 秒内再次调用该方法,我会收到以下异常。

Error: System.InvalidOperationException: A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.
Run Code Online (Sandbox Code Playgroud)

此按钮针对“用户”表中的每一行呈现。我试图快速连续删除多个用户记录,但收到上述错误。

这是按下按钮的代码(使用 AntBlazor)

 <Button Type="primary" Danger OnClick="@(async() => await RemoveAsync(user))">Remove User</Button>
Run Code Online (Sandbox Code Playgroud)

这是RemoveAsync 方法的代码。

private async Task RemoveAsync(User user)
{
   await UserService.UpdateUserAsync(user);
}
Run Code Online (Sandbox Code Playgroud)

我是否误解了 async/await 的工作原理?或者我是否需要利用任务来确保操作完成?

编辑:

这是 UserService.UpdateUserAsync() 代码

public async Task<bool> UpdateUserAsync(User …
Run Code Online (Sandbox Code Playgroud)

.net c# blazor blazor-server-side

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

blazor ×1

blazor-server-side ×1

c# ×1