线程被销毁时的通知[重复]

2024-02-29

有没有办法获得应用程序中线程不再运行(已返回)的通知?
我知道这在内核模式下是可能的(使用 PsSetCreateThreadNotifyRoutine),但是有没有办法仅使用 Win32 API 从用户模式知道这一点?

问题是我无法控制线程中的代码,因为我的模块是库的一部分。制作一个驱动程序来监视系统不会太难,但即使对于使用我的库的基本应用程序,用户安装驱动程序也很烦人。

我的代码使用 TLS 存储,在 Linux/Unix 下 pthread_key_create 可以获取指向线程被销毁时调用的函数的指针。但 TlsAlloc (Windows) 没有这样的东西......

提前致谢!


取决于你有什么样的图书馆。对于 DLL 可以处理 DllMain 中的线程终止(DLL_THREAD_DETACH). The MSDN http://msdn.microsoft.com/en-us/library/ms682583%28VS.85%29.aspx声明这是处理 TLS 资源的最佳位置。

请记住,此回调仅在线程干净退出时调用(而不是通过例如TerminateThread()).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程被销毁时的通知[重复] 的相关文章

随机推荐

  • UndefinedFunctionError phoenix Elixir 新项目

    全新安装 Phoenix 后 我尝试触发一个新项目 当我尝试运行服务器时 我遇到了 Unchecked dependencies for environment dev gettext Hex package the dependency
  • Node.js 服务器启动速度非常慢

    我构建了一个小型 angular js Web 应用程序 托管在我的计算机上运行的 Node js 服务器上 当我启动节点服务器时 大约需要 30 35 秒 同事计算机上的完全相同的服务器需要 2 4 秒才能启动 我已在控制台中记录了时间
  • nhibernate 是否可以将查询作为 IDictionary 而不是实体类返回?

    我有一个实体人 public class Person public virtual int Id get set public virtual string FirstName get set public virtual string
  • iOS 魔法记录 & SQLCipher

    我正在使用 Magical Record 来保存我的数据 这些数据需要加密 所以我尝试将其与 SQLCipher 库结合起来 http sqlcipher net ios tutorial http sqlcipher net ios tu
  • 如何使用java的selenium web驱动程序获取特定optgroup下的选项?

    例如 我想从多选选项列表字段中选择特定 optgroup 下的选项
  • JNI GetByteArrayElements () 错误

    我是 JNI 的新手 所以我对 JNI 和英语都不熟悉 我的JNI项目是一个简单的文件读写 在 Java 中读取文件并将字节数组传递给 C API 然后使用 C 将其写入文件 我的源代码 Java代码是 public class FileI
  • 使用 jQuery 将活动类添加到导航中的当前页面

    我正在尝试将 活动 类添加到标题中当前页面的导航链接 我取得了一些进展 但遇到了一个小错误 希望得到一些帮助 我知道答案很明显 但是 我是 jQuery Javascript 的新手 我自己很难找到它 这是我的导航 HTML 结构
  • “这个分支有必须解决的冲突”但它已经合并了

    我合并了一个PR https github com DaniSchenk moment feiertage pull 8使用 GitHub Web 界面 成功解决了合并提交 https github com DaniSchenk momen
  • 关闭 websocket++ 连接

    当在 ASIO 模式下使用 Websocket 时 我开始连接 boost shared ptr
  • Rscript:没有名为...的包吗?

    我想使用 Rscript 以批处理模式运行 R 文件 但它似乎没有加载我需要的库 我收到的具体错误是 Error in library timeSeries there is no package called timeSeries Exe
  • 如何从 jQuery 函数内部的外部获取变量? [复制]

    这个问题在这里已经有答案了 我试图弄清楚如何从函数外部 jQuery 函数内部获取变量 但我得到Uncaught ReferenceError myvar is not defined 有什么办法可以做到这一点吗 我的代码的一个简单示例 f
  • 如何获得具有多个单位的输出的时间差

    再会 我在 as POSIXct 中有两个日期列 格式为 YYYY MM DD HH MM SS 我想得到两者之间的差异 以天小时 秒的格式显示 这是一些虚拟数据 a lt c 2018 03 20 11 52 25 AST 2018 03
  • 导航到目的地时仅创建一个片段实例(android)

    我正在使用导航组件 导航时 如果片段已经存在于后台堆栈中 我不想创建新的片段实例 并弹出前面已经存在的片段 findNavController navigate RequestTransferFragmentDirections actio
  • 为什么无作用域枚举的声明可以编译?

    In the Effective Modern C Scott Meyers 的书提到 无作用域枚举和有作用域枚举 枚举类 之间的主要区别之一是我们无法转发声明前者 请参阅第 3 章第 10 项 更喜欢有作用域的枚举而不是无作用域的枚举 例
  • 容错 JSON 解析

    我正在使用 Data Aeson 将一些 JSON 解析为记录类型 有时数据会添加到 JSON 中 这会破坏我的代码 因为 Aeson 抱怨如下 预期对象为 21 名称 值对 但有 23 个名称 值 我真的更喜欢以容错方式解析 JSON 我
  • 为什么 Chrome 扩展程序图像在添加到 DOM 时显示为损坏?

    我正在构建一个 Chrome 扩展 并尝试通过内容脚本将带有背景图像的 div 添加到 DOM CSS 加载正确 并且通过开发人员工具检查器查看图像 URL 似乎是正确的 close button css background url ch
  • 原始pcm格式的音频数据是如何存储的?

    我正在编写一个应用程序来操作音频 我需要首先将文件 wav MP3 等 转换为原始数据 样本以浮点形式呈现 我在cmd中使用ffmpeg ffmpeg i test wav f s16le acodec pcm s16le output d
  • Powershell - 如果进程未运行,则启动它

    菜鸟请帮忙 我正在尝试编写一个脚本来检查进程是否正在运行 如果没有 则启动它 如果该进程正在运行 则它不应该执行任何操作 到目前为止 我已经提出了以下内容 但它正在启动该进程的一个新实例 无论它是否已经在运行 任何帮助表示赞赏 Prog C
  • 尝试将生成的PDF发送到谷歌云功能以使用nodemailer发送电子邮件

    目标是让用户在表单中输入一些信息并将其输出到 PDF 中 我正在使用 JSPDF 来解析和创建 PDF 我已经成功获得了制作可打印 PDF 的代码 但为了避免办公室里到处都是纸张 我制作了一个云功能来将该 PDF 通过电子邮件发送给客户 这
  • 线程被销毁时的通知[重复]

    这个问题在这里已经有答案了 有没有办法获得应用程序中线程不再运行 已返回 的通知 我知道这在内核模式下是可能的 使用 PsSetCreateThreadNotifyRoutine 但是有没有办法仅使用 Win32 API 从用户模式知道这一