Я использую thread с BackgroundWorker
этим, приложение ждет долгое время для извлечения 50000 записей, это заставляет другую операцию ждать, пока этот поток не завершится. Как я могу избежать процесса ожидания при использовании вторичного потока.темы с BackgroudWorker, ждет долгое время. Как я могу избежать этого
private void btnExrtPDF_Click(object sender, RoutedEventArgs e)
{
if (DetailsOrSummary == "Details")
isDetails = true;
Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() =>
{
try
{
DetailReportFCBuySell = AlyexWCFService.DL.DLTTIn.FCBuySELL(
transactionName, isDetails,
Convert.ToDateTime(dateEdtStartDate.EditValue).Date,
Convert.ToDateTime(dtpEditEndDate.EditValue).Date,
Customerid, ProductID, branchID,
NoOfRecords, PageIndex - 1, isBuy);
worker.RunWorkerAsync();
}
catch
{
object obj = new object();
}
}));
}
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
Dispatcher.Invoke(new Action(() =>
{
System.Data.DataTable batchFCSB = new System.Data.DataTable();
int row = 0;
if (DetailReportFCBuySell.FirstOrDefault().TotalRecords > toFetchRecords)
{
long RecordsIcrease = 1000;
batchFCSB = DetailReportFCBuySell.ToDataTable();
//Collection.Add(row, batchFCSB);
row = 1;
PageIndex++;
for (long k = toFetchRecords; k < DetailReportFCBuySell.FirstOrDefault().TotalRecords; k = +toFetchRecords)
{
new AlxServiceClient().Using(channel =>
{
ObservableCollection<DLReports.FCBuySellDetail> temp
= AlyexWCFService.DL.DLTTIn.FCBuySELL(
transactionName, isDetails,
Convert.ToDateTime(dateEdtStartDate.EditValue).Date,
Convert.ToDateTime(dtpEditEndDate.EditValue).Date,
Customerid, ProductID, branchID, NoOfRecords, PageIndex - 1, isBuy);
DetailReportFCBuySell = DetailReportFCBuySell.Union(temp).ToObservableCollection();
row++;
PageIndex++;
});
toFetchRecords = toFetchRecords + RecordsIcrease;
}
}
}), DispatcherPriority.ContextIdle);
}
Просто убедитесь, что обновление компонентов пользовательского интерфейса и управление наблюдаемой коллекцией выполняется в потоке пользовательского интерфейса. В настоящее время вы выполняете все в потоке пользовательского интерфейса. – WBuck
s уже разрешено мной pblm, спасибо за помощь ур за помощь мне. –