0

私は自分のアプリケーションにデータ同期を追加しました。アプリケーションがインストールされると、データの同期を促すプロンプトが表示されます。私のテスト中、私は記録の量が限られていて、うまくいきました。これで、実際のデータベースが接続されたので、同期中にアプリがハングして応答しなくなりました。アプリを閉じるためのアラートもアンドロイドデバイスに表示されます。同期のためにXamarin Froms一括データ挿入アプリケーションがハングアップ

、私はこの

bool response1 = await syncCustomers(); 
bool response2 = await syncItems(); 
if(response1 and response2) 
{ 
    do something 
} 

をしています両方syncCustomers()とsyncItemsは()ブール値を返すタスクです。彼らは、APIからデータをフェッチし、既存のデータベーステーブルをクリアし、新しくフェッチされたデータをテーブルに取り込みます。

同期処理中に、アクティビティインジケータが表示されます。データセットが小さければ、アプリは応答したままであり、データが同期されるまで(長くはない)インジケータが回転し続けます。 しかし、大規模なデータセットでは、アプリケーションがハングして閉じられる必要があります。ライブデータベースには約6〜7,000のレコードがあります。

次回からアプリを起動すると、アイテムと顧客がデータベースに存在します。つまり、データが正しく追加されます。しかし何らかの理由で、アプリがハングします。

答えて

1

私は解決策を思いついた。上記のスニペットを直接UIスレッドで実行していたと私は思っていました。今度はコードを実行しています

Task.Run(some code); 

これは完全に動作します。アクティビティインジケータが回転し続け、アプリがハングしません。