调用com接口,会每次执行com的接口,都会new一个引用,完了又释放,如何处理才能优化?
写了个delphi和C#的调用com接口的demo,用法一样的,delphi的用了5秒,但是C#的要用60秒,差太远了吧?

解决方案 »

  1.   

    会差那么多??
    我这边创建DirectShow的COM非常快啊
      

  2.   

    我不清楚你代码里的具体的情况。可不可以new出来以后就成为一个单例,直到整个应用程序退出的时候再释放?
      

  3.   

    我个人觉得还是检查COM内部初始化做了什么事情,或者创建一个NULL COM比较一下速度
      

  4.   

    创建com实例很耗时,所以不要多次new实例,而是new一个放在static变量中,以后直接使用,
      

  5.   

    同时贴出你认为一样的 Delphi 代码和 C# 代码。
      

  6.   

    其實這兩個數據
    "delphi的用了5秒,但是C#的要用60秒"
    都讓我覺得很懷疑﹗就算COM是遠程需要驗證,這兩個數據好像都太慢了?
      

  7.   

    建议LZ贴出DEMO代码,大家一起分析一下。
      

  8.   

    检查COM的 ThreadingModel 注册表项,避免跨单元的代理调用
    如COM使用STA单元,则可以在C#中使用STAThreadAttribute或Thread.SetApartmentState方法