У меня есть эта форма, где я выполняю много операций над базой данных. Я собираю огромный список продуктов и поставщиков из базы данных. Теперь я могу успешно реализовать фоновый рабочий для списка продуктов, но я не могу получить список поставщиков в том же фоновом потоке.Как получить доступ к нескольким наборам данных в одном экземпляре рабочего стола
Это дает мне исключение для вызова. Можно ли получить несколько списков в одном фоновом потоке?
public void GetDetails()
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += worker_DoWork;
worker.RunWorkerCompleted +=worker_RunWorkerCompleted;
IsBusy = true;
worker.RunWorkerAsync();
}
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
ObservableCollection Products = (ObservableCollection)e.Result;
foreach (var prod in Products)
{
this.Products.Add(prod);
}
IsBusy = false;
}
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
ObservableCollection Products = new ObservableCollection();
ObservableCollection Supplier = new ObservableCollection();
using (Genesis_DataDataContext dataDc = new Genesis_DataDataContext())
{
foreach (tbl_Product thisProduct in dataDc.tbl_Products)
{
Products.Add(thisProduct);
}
//foreach (tbl_Supplier thisSupplier in dataDc.tbl_Suppliers)
//{
// Suppliers.Add(thisSupplier);
//}
}
e.Result = Products;
}
Сообщение об ошибке и трассировка стека. –
Пожалуйста, также разместите образец кода. Ответ на ваш вопрос «да», но мы можем помочь без дополнительной информации. –
Это часть, где я извлекаю данные с помощью фонового рабочего –