SQLite データベースを開く次のコードがあります。バックグラウンドワーカーなしで開こうとすると、すべてがうまく機能します。問題は、大量のデータをロードすることです。そのため、バックグラウンドにスローしたいと考えています。
_worker = new BackgroundWorker();
_worker.DoWork += ((s, x) =>
{
_citiesList = new ObservableCollection<City>();
_citiesList = (Application.Current as App).db.SelectCityCollectionCollection(selectString);
});
_worker.RunWorkerCompleted += ((s, x) =>
{
LocationClearText.Visibility = Visibility.Visible;
SearchCityPromptList.ItemsSource = _citiesList.Select(p => p).Where(p => p.cityName.StartsWith(CitySearchBox.Text) || p.flatCityName.StartsWith(CitySearchBox.Text)).Take(30);
});
_worker.RunWorkerAsync();
スローされるエラーは、「データベース ファイルを開けませんでした: myDatabase.sqlite」です。
私が言ったように、BackgroundWorkerで開こうとするまですべてが機能します。これを機能させるには、コードをどのように変更すればよいですか?