1

非常に基本的な質問があります:EnumWindowsスレッドセーフですか?

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

ありがとう

4

2 に答える 2

2

メインスレッドにはありません。それが私の質問でした

user32.dll の一部の関数はスレッドに依存します。たとえば、ワーカー スレッドでカスタム メッセージに対して SendMessage() を呼び出すと、かなり深い穴を掘ることができます。しかし、いいえ、 EnumWindows() にはそのような問題はありません。スレッドがメッセージループをポンピングしているかどうかは気にせず、スレッドの状態に依存しません。もちろん、コールバックで取得したウィンドウ ハンドルが、ほんの一瞬前に破棄されたウィンドウ用である可能性を考慮する必要があります。EnumWindows() は、ウィンドウを作成したすべてのプロセスのすべてのスレッドをフリーズしませ。 .

于 2013-09-15T15:40:46.037 に答える
2

EnumWindowsどのスレッドからでも安全に呼び出すことができます。原則として、Windows API 関数はスレッド セーフです。この一般規則の例外は、関数のドキュメントに掲示されるサインです。

于 2013-09-15T14:10:29.427 に答える