Multithreading Xamarin FROM的批量数据插入挂起应用程序

Multithreading Xamarin FROM的批量数据插入挂起应用程序,multithreading,xamarin.forms,async-await,entity-framework-core,ef-bulkinsert,Multithreading,Xamarin.forms,Async Await,Entity Framework Core,Ef Bulkinsert,我在应用程序中添加了数据同步。安装应用程序时,它会提示用户同步数据。在我的测试中,我的记录数量有限,而且运行良好。现在我已经连接了真实的数据库,应用程序挂起,在同步过程中没有响应。android设备上还会显示关闭应用程序的警报 为了同步,我正在这样做 bool response1 = await syncCustomers(); bool response2 = await syncItems(); if(response1 and response2) { do something

我在应用程序中添加了数据同步。安装应用程序时,它会提示用户同步数据。在我的测试中,我的记录数量有限,而且运行良好。现在我已经连接了真实的数据库,应用程序挂起,在同步过程中没有响应。android设备上还会显示关闭应用程序的警报

为了同步,我正在这样做

bool response1 = await syncCustomers();
bool response2 = await syncItems();
if(response1 and response2)
{
     do something
}
syncCustomers和syncItems都是返回bool的任务。它们从API获取数据,清除现有的数据库表,并用新获取的数据填充该表

在同步过程中,将显示一个活动指示器。当数据集很小时,应用程序会保持响应,指示器会一直旋转,直到数据被同步,这并不长。 但由于数据量很大,应用程序会挂起,需要关闭。实时数据库中大约有6000到7000条记录


下次启动应用程序时,数据库中存在项目和客户。这意味着数据添加正确。但由于某种原因,应用程序挂起。

我想出了一个解决方案。我直接调用了上面给定的代码段,我相信它是在UI线程中运行的。现在我正在运行中的代码

Task.Run(some code);
它运行得很好。活动指示灯持续旋转,应用程序未挂起