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;