我正在开发 Blazor 应用程序。
当用户填写表单时,需要将数据保存到表格中,并且需要运行更长的任务。
用户不需要等待这个更长的任务完成。稍后会通知他。
但是当长任务完成时,需要更新表条目。
这个怎么做?
这是我当前的代码,它阻止用户直到所有完成:
public async Task<Client> Create(Client client)
{
client.DatabaseCreated = false;
await _context.Clients.AddAsync(client);
await _context.SaveChangesAsync();
Debug.WriteLine("Client added");
// Run longer task.
try
{
// TODO: Don't wait for it:
var longTask= myLongTask(client.Code, client.Id);
// update table entry
client.DatabaseCreated = true;
var updateClient = _context.SaveChangesAsync();
await Task.WhenAll(longTask, updateClient);
Debug.WriteLine("Client updated");
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
Debug.WriteLine("Client returned");
return client;
}