在我的应用程序中,我使用SOAP服务下载CSV文件,这些文件用于填充Sqlite数据库中的不同表。我正在使用SQLite.Net库进行数据库操作。
为了填充数据库,我为每个表编写了方法(因为不同的模式)。这些方法同步运行。在这些方法中,我使用的是同步SQL连接的实例。
当我将方法从void
更改为async Task
并使用await
进行调用时,我不知道这些方法是否已完成,以及何时完成。
我的问题是我应该采取什么方法才能将这些操作更改为异步,以及如何在每个方法完成时定义事件。我从来没有写过事件,所以如果有人能给出一些样本怎么做,我将不胜感激。
答案 0 :(得分:1)
从异步方法返回的Task
为您提供所需的内容。当异步方法完成时,Task
类型将通知调用代码。
利用此功能的最简单方法是让调用代码使用await
。例如,如果您希望(异步)等待填充每个表:
await PopulateTable1Async();
await PopulateTable2Async();
await PopulateTable3Async();
或者,您可能希望同时填充所有表格,在这种情况下,您可以使用Task.WhenAll
:
await Task.WhenAll(PopulateTable1Async(), PopulateTable2Async(), PopulateTable3Async());