我的查询似乎每通过查询一次就停止了。
status_text.Text = "Check existing records...";
status_text.Refresh();
using (StreamReader reader = new StreamReader(df_text_filename))
{
using (StreamWriter writer = new StreamWriter(df_text_filename + "_temp"))
{
while ((product = reader.ReadLine()) != null)
{
if (product != _aff_svc.DFHeaderProd)
{
df_product = _product_factory.GetProductData(_vsi, product);
}
status_text.Text = "Checking for existing record of vendor record ID " + df_product.SKU;
status_text.Refresh();
if (_pctlr.GetBySKU(df_product.SKU) != null)
{
continue;
}
writer.WriteLine(product);
Application.DoEvents();
}
writer.Close();
}
reader.Close();
}
System.IO.File.Delete(df_text_filename);
System.IO.File.Move(df_text_filename + "_temp", df_text_filename);
代码快速运行 GetBySKU 大约 10 次,暂停大约一秒钟左右,然后快速执行另外 10 条记录。这发生在我的整个过程中,而不仅仅是这个特定的查询。
无论我是否有 Application.DoEvents() 触发,它也会发生。
另一个问题是不一致。我可以像这样工作几个小时,然后突然之间,它会按预期(预期)通过循环。
我的 SQL 服务器与程序在同一台机器上运行。
我研究了将资源专用于服务器以减轻这种行为,但一无所获。