在使用 SlimTune 分析 C# 应用程序时,我发现当启用分析 native 函数时,有很多名为“CoUninitializeE”的函数的条目。 CoUninitialize 似乎与 COM 对象有关,但我没有直接使用任何 Com 对象,Google 也没有关于以 E 结尾的版本的信息。
有谁知道这个功能是什么/如何减少花在它上面的时间? (例如,它是否与内存管理有关,因此减少内存分配或释放会有所帮助?)
编辑
看起来该函数的名称实际上是“CoUninitializeEx”,而 SlimTune 出于某种原因只是砍掉了一个字母。我仍然希望了解导致调用此函数的原因。
最佳答案
CoInitalizeEx() 和 CoUninitialize() 是 Windows 编程的核心。它们分别在一个线程上初始化和关闭 COM。 CLR 在线程运行前后自动调用这些函数。很难避免在 .NET 程序中使用 COM,它是 native Windows 代码的基本扩展模型。完全不可见,这要归功于 .NET 框架中隐藏管道的许多包装器类。
一般诊断是您使用了很多线程。是的,贵。线程池是一种解决方法。
关于c# - 分析期间出现未知函数 CoUninitializeE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7589371/