doc.Add 是ItextSharp,是第三方dll提供的一个方法,再往下走就是Metadata了。我的意思是,我完全不知道程序到这里就卡住了,我是一步一步的代码调试到这里才发现的。有没有什么办法能够定位的哪个方法执行的时候非常耗时?否则如果代码很多的话,一步一步调试那就太费劲了。

解决方案 »

  1.   

    一看就是操作word的。。不抛异常估计是出现死循环或者死锁了。。仔细检查代码。看是不是用了多线程或者死循环
      

  2.   


    这个是操作PDF的,生成PDF的。doc.Add方法最底层的方法,就是在这里就卡住不动了。
      

  3.   

    如果你能遵循规范,不要把大段的代码都写到一个方法里,而是将相似的内容进行封装,每个函数里代码不要过多
    这样查找起来会快很多至于为什么会卡住,只能自己去找原因了.除非你有dll的源码并且附加进工程,否则dll里到底怎么了,谁知道
      

  4.   


    这个是操作PDF的,生成PDF的。doc.Add方法最底层的方法,就是在这里就卡住不动了。
    把你的dll拿去反编译看看里面的逻辑 还有把断电去掉 看看 抛不抛异常 。如果不抛异常而且 很长时间没反应 那估计就是 出现死循环或者死锁或者无线递归的情况。。不然的话应该会抛异常的。。而且可能这个Add方法需要时间过长导致断电没反应这都很正常
      

  5.   

    如果一个对象调试进不去,通常意味着该对象的创建出了异常,检测下该对象new构建函数是否能够创建
      

  6.   

    用 ETW,
    下载 PERFVIEW