首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.Net Com互操作创建实例速度慢

.Net Com互操作创建实例速度慢
EN

Stack Overflow用户
提问于 2010-05-12 05:03:06
回答 1查看 945关注 0票数 4

我有一个使用Com发送短信的.net 4应用程序。我使用TlbImp创建互操作程序集,这是应用程序中引用的程序集。

当我尝试创建这个类的实例时,需要很长时间(2-5秒)。

我在VS2010中运行了performance profile,到目前为止花费时间最长的调用是System.Activator.CreateInstance()。

我正在寻找关于如何调试或使用Com Interop的技巧。

EN

回答 1

Stack Overflow用户

发布于 2011-06-04 08:52:48

您正在创建对象的线程是什么COM单元类型?

如果它是您的主应用程序线程,并且您没有使用STAThreadAttribute标记您的主入口点,那么您将在MTA中运行。如果你使用这个属性,你的线程将在STA中。对于其他线程,您可以在启动线程之前使用Thread.SetApartmentState设置单元类型。

如果您的COM对象是使用与您正在使用的单元模型不同的单元模型注册的,则会产生启动新线程/单元的开销,在另一个单元中创建对象,并且所有通信都通过代理/存根发生,而不是直接调用COM对象。

这可能会导致一些性能问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2814423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档