c# - 分析期间出现未知函数 CoUninitializeE

标签 c# .net profiling clr slimtune

在使用 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/

相关文章:

c# - 任务循环退出的 CancellationTokenSource 和退出标志之间的区别

c# - 如何在 LINQ-to-SQL 中模拟正则表达式

c# - 如何使用 httpWebRequest 设置请求体

.net - 调试和编辑项目中作为 NuGet 包引用的内部库的最佳工作流程是什么?

java - 最新的 Java 分析器

haskell - 如何在 Haskell 中获取程序的运行时间

c# - SSL 握手超时

c# - TaskFactory 内部任务永远不会被执行并且始终处于 WaitingForActivation 状态

c# - 批量删除特定目录中的部分文件夹名称

获取 PID 及其所有子项的 CPU 使用率的 C 程序