multithreading - 阻止STA线程中的调用(等待,com调用)

标签 multithreading delphi com+ sta waitformultipleobjects

我有一个Windows服务,可创建10多个线程:

  • 做他们的工作,然后进入WaitForMultipleObjects状态,直到再次恢复..
  • 每个线程在其AppServer上创建TDCOMConnection组件调用方法,然后
    关闭连接

  • 该服务运行正常,但是我看到内存泄漏问题。

    我只是想知道这个问题是否与邮件泵送有关。

    我一直认为,仅应在STA线程中进行消息泵送
    当我使用com编码时(在两个线程之间有一个代理的情况下)

    但是今天我读到某处的内容,以防阻塞调用,我应该注意消息。
    真的吗?

    但是我的应用程序仍然可以正常运行,不会阻止自身...

    也许我应该使用:CoWaitForMultipleHandles而不是:WaitForMultipleObjects?

    对这个问题有什么想法吗?

    最佳答案

    我不相信使用WaitForMultipleObjects而不是CoWaitForMultipleHandles会导致内存泄漏。实际使用哪种功能完全取决于您,但是对是否泄漏没有影响。

    为了解决这个问题,我认为您需要获取有关泄漏的详细诊断信息。

    关于multithreading - 阻止STA线程中的调用(等待,com调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375362/

    相关文章:

    Delphi 标准输入输出代码页

    java - com4j 与 jacob 从 Java 调用 COM 方法

    objective-c - NSMutableString 线程安全?

    c++ - grpc 服务中连接的简单线程安全 vector

    delphi - 如何在 TDBCheckBox 后代中将 NULL 值显示为未选中状态?

    德尔福XE2 : Disabling vcl Style on a component

    .net - 无法使用 Windows 7 或 Windows Server 2008 64 位从 COM+ 目录导出 32 位 ServicedComponent

    multithreading - 关于线程、COM+ 和 STA 单元的几个问题

    c++ - 使用具有共享全局变量的线程

    c# - 多线程 WebRequest 调用和争用