异步数据库填充
本文关键字:填充 数据库 异步 | 更新日期: 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());