【问题标题】:Get notifications of new threads / deleted threads under Windows在 Windows 下获取新线程/删除线程的通知
【发布时间】:2010-09-02 22:42:47
【问题描述】:

当您创建 DLL 时,您可以在 DllMain 函数 (DLL_THREAD_ATTACH/DLL_THREAD_DETACH) 中获得有关新线程/退出线程的通知。

有没有办法在(非托管)可执行文件中从 Windows 获取这些或等效通知?

【问题讨论】:

    标签: windows multithreading language-agnostic winapi notifications


    【解决方案1】:

    是的 - 在您的进程中包含一个小的存根 DLL,它只是以您想要的方式监视 DLL_THREAD_ATTACH 和 DLL_THREAD_DETACH。

    【讨论】:

    • 我只想写一样的。这种方式对我来说似乎是最简单、有据可查且稳定的。
    • afaik 这是在 Windows 上可靠地实现这一目标的唯一方法
    • 这就是我目前正在做的事情,但是该库应该是一个没有任何 DLL 的完整源解决方案。因此问题是如何在没有 DllMain 通知的情况下做到这一点..
    • 我明白,但我不知道有任何其他方法可以做到这一点。有趣的是,这是我不得不回答一次的面试问题,而相关公司也没有找到其他选择。
    • @Ritsaert Hornstra:没有任何 DLL 的单一解决方案的要求似乎是乌托邦式的。您的 EXE 将需要许多以 DLL 形式实现的操作系统部分。如果您在解决方案中使用 COM 组件,您将拥有更多的依赖项。因为您询问有关线程监控的问题,所以您确实使用了一些创建线程的 DLL:COM、套接字或其他网络组件等。因此,我建议您与您的厨师再谈一次关于编写“无 DLL”代码的要求。
    猜你喜欢
    • 1970-01-01
    • 2022-01-27
    • 2012-01-29
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2011-12-25
    • 1970-01-01
    相关资源
    最近更新 更多