添加尝试捕获块后接收超时



我写了一些代码来操作大约 6 个包含大量行的表。我花了大约 4 分钟来完成工作,但它正确完成。后来,当我添加更多尝试捕获块时,我开始收到超时。太多的尝试捕获块是否可能导致超时?如果不是,可能出现什么问题?

我首先通过OleDbDataAdapter从*.mdb读取数据,然后读取/写入/更新MS SQL。

取决于引发异常的频率。实际上,try-catch bloc 会在引发异常时显着减慢您的代码速度。在我的英特尔 i5-4440 上,调试时每个捕获块最多需要 30 毫秒。因此,某些具有 1000 次迭代的循环(抛出和捕获异常)将需要 30 秒才能完成。

简单的证明代码示例

[Test]
public void Test()
{
    var timer = new Stopwatch();
    timer.Start();
    for (int i = 0; i < 1000; i++)
    {
        try
        {
            throw new Exception();
        }
        catch (Exception)
        {
            // do nothing
        }
    }
    timer.Stop();
    Console.WriteLine(timer.ElapsedTicks);
    timer.Reset();
    timer.Start();
    for (int i = 0; i < 1000; i++)
    {
        try
        {
            // do nothing
        }
        catch (Exception)
        {
            // do nothing
        }
    }
    timer.Stop();
    Console.WriteLine(timer.ElapsedTicks);
}

我的 CPU 上的输出(不在调试中):

19119
13

相关内容

  • 没有找到相关文章