2012-03-03 3 views
1

モバイルデバイスでSQL Server Compact Edition 3.5を使用しています。同期フレームワークを使用した同期は、ボタンを押して完了するのを待っているユーザーのコンテキストで正常に機能します。そこには問題はありません。モバイルデバイス上の同期中にsqlceclientsyncproviderプロバイダが.sdfファイルをロックしますか?

最近、私はバックグラウンドスレッドでこれを実行しようとしました。バックグラウンドスレッドは、「n分」ごとに実行されます。私はその時点でデータベースを使用していない場合、これも正常に動作します。私がデータベースを使用している場合は、アプリケーション全体がロックアップして、私はまだ起こっている必要があります特定の例外が見つかりませんでした。私はそれを続けますが、それは私の質問の一部ではありません。

私の質問はSynchronization中にSqlCeClientSyncProviderが何とか排他的なロックをスローするか、そうでなければ物理的に.SDFファイルをロックするかどうかです。もしそうなら、この動作を無効にするオプションはありますか?

答えて

1

いいえ、.SDFファイルをロックしません。テスト後には、読み取りコミットされた分離レベルのトランザクションが作成されます。私が抱えていた問題は、自分のスレッディングコードでデッドロックの問題でした。慎重なリファクタリングの後に解決できました。私は、同期が起こる前にイベント「SyncBegun」を起こしていて、その後のイベント「SyncEnded」を起こしていました。これらは、お互いのつま先を踏んでいる別々のロックを使用していました。

関連する問題