EnumWindows线程是否安全

时间:2013-09-15 11:31:50

标签: windows winapi

我有一个非常基本的问题: 是EnumWindows线程安全吗?

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspx

由于

2 个答案:

答案 0 :(得分:2)

  

不在主线程中。这是我的问题

user32.dll中的某些函数是线程敏感的,如果你在工作线程上调用SendMessage()获取自定义消息,你可以挖掘自己一个非常深的漏洞。但是,不,EnumWindows()没有这样的问题,它不关心线程是否正在抽取消息循环并且不依赖于线程状态。你当然需要考虑你在回调中获得的窗口句柄可能是一个窗口,这个窗口在之前的一小段时间内被破坏,EnumWindows()会冻结每个线程创建窗口的每个进程。

答案 1 :(得分:1)

您可以从任何线程安全地呼叫EnumWindows。作为一般规则,Windows API函数是线程安全的。此一般规则的例外情况将在功能文档中标记。