0

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で開こうとするまですべてが機能します。これを機能させるには、コードをどのように変更すればよいですか?

4

1 に答える 1