gpt4 book ai didi

c# - 进程外 COM 缓慢

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:42 27 4
gpt4 key购买 nike

我目前正在开发一个并行应用程序(C#、WinForms),它通过 COM 将消息注入(inject)应用程序。

此应用程序使用多个 foreach 语句,从接受 COM 的应用程序中轮询实体指标。 ListBox 用于列出每个实体,当用户从该列表中选择一个实体时,将创建并执行一个线程,调用一个方法来检索所需的数据。

当用户从列表中选择不同的实体时,正在运行的线程将中止,并为新选择的实体创建一个新线程。

我花了一天时间查看线程和内存使用情况,得出的结论是一切正常。永远不会有超过 6 个线程同时运行(所有线程都是唯一的,用于执行不同的成员),并且通过 Windows 任务管理器,我的应用程序的峰值不会超过 10 CPU%、29M MEM。

最佳答案

唯一想到的是您正在使用的 COM 对象设计为在单线程单元 (STA) 中运行。如果是这种情况,那么启动多少个线程都无关紧要;当调用这个 COM 对象时,它们最终都会被序列化。如果你的机器有多个内核,那么你肯定会看到不到 100% 的使用率。不过 10% 似乎很低。如果看到 25% 左右的东西基本上代表四核系统的一个固定核心,我不会感到惊讶,但 10% 的数字可能需要另一种解释。如果您的代码或 COM 对象本身正在等待 IO 操作完成,这可能更多地解释了低吞吐量。

关于c# - 进程外 COM 缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4448116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com