Multithreading Xamarin FROM的批量数据插入挂起应用程序
我在应用程序中添加了数据同步。安装应用程序时,它会提示用户同步数据。在我的测试中,我的记录数量有限,而且运行良好。现在我已经连接了真实的数据库,应用程序挂起,在同步过程中没有响应。android设备上还会显示关闭应用程序的警报 为了同步,我正在这样做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
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);
它运行得很好。活动指示灯持续旋转,应用程序未挂起