是否有一种方法可以从DLL中告诉主进程中有多少正在进行的线程?

Is there a way to tell how many on-going threads in the master process from a DLL?

本文关键字:进程 正在进行 线程 多少 一种 方法 是否 DLL      更新时间:2023-10-16

场景如下:

如果一个程序被执行,在运行时假设它将链接到一些DLL文件,(主)程序/进程可能会也可能不会创建对DLL中函数的多线程函数调用。

那么有一种方法,DLL,当然除了参数传递,可以告诉主进程,谁在运行时调用DLL内的函数,是在一个单一的或多线程的方式(例如,通过开放MP)?

您可以检查和比较当前线程ID,以检测来自不同线程的调用。您还可以实现DLLMain()函数,该函数为每个启动和终止的线程调用。我很确定您还可以检索当前进程的句柄并枚举其中运行的线程。只有第一个版本会告诉你你的代码是否在不同的线程中运行,我认为例如WinSock会为你创建一个线程,即使你的程序是单线程的。

BTW:考虑添加win32api标签和删除c++标签