异步数据库填充

本文关键字:填充 数据库 异步 | 更新日期: 2023-09-27 18:13:24

在我的应用程序中,我使用SOAP服务下载CSV文件,这些文件用于填充Sqlite数据库中的不同表。我正在使用SQLite。. Net库,用于数据库操作。

为了填充数据库,我为每个表编写了方法(因为模式不同)。这些方法是同步运行的。在这些方法中,我使用了一个同步SQL连接的实例。

当我将我的方法从void改为async Task并用await调用它们时,我不知道这些方法是否完成,以及何时完成。

我的问题是我应该采取什么方法才能将这些操作更改为异步操作,以及如何在每个方法完成时定义事件。我从来没有写过事件,所以如果有人能给我一些例子,我将不胜感激。

异步数据库填充

从异步方法返回的Task提供了您所需要的。Task类型将在异步方法完成时通知调用代码。

利用这一点的最简单方法是让调用代码使用await。例如,如果您想(异步地)等待每个表被填充:

await PopulateTable1Async();
await PopulateTable2Async();
await PopulateTable3Async();

或者,您可能希望同时填充所有表,在这种情况下,您可以使用Task.WhenAll:

await Task.WhenAll(PopulateTable1Async(), PopulateTable2Async(), PopulateTable3Async());