我从 tblCustomer 循环数据并检查地址是否有效。如果没有,那么我将其添加到我的退货清单中。问题是,有 37000 行需要验证。验证是通过外部库完成的。大约需要1小时。我想做这个线程,所以我可以做得更快。有人可以帮我重写吗?此外,我在某处阅读以将其包装在并行类 for 或 foreach 中。我想知道的几件事-
它将创建多少个线程?我们怎么能控制它?
我们能说每个线程将处理多少条记录吗?
我认为最重要的问题是:这个 dll 有静态类,可以验证地址。当我将其拆分为线程时,它会给我带来任何性能提升……还是需要同样的时间?
List<tblCustomer> customers = new List<tblCustomer>();
int i = 0;
foreach (var customer in DataContext.tblCustomers)
{
string addressToValidate = string.Format("{0}, {1}; {2} {3}", GetSafeString(customer.MailingCity), GetSafeString(customer.MailingState), GetSafeString(customer.MailingAddress), GetSafeString(customer.MailingAddress2));
isTripValid = PCM.PCMSAddStop(tripId, addressToValidate.Trim()) == 1;
if (!isTripValid)
{
customers.Add(customer);
}
i++;
if (i == 1000)
{
PCM.PCMSClearStops(tripId);
i = 0;
}
}
PCM.PCMSCloseServer(serverID);
PCM.PCMSDeleteTrip(tripId);
return customers;