阅读另一个问题的评论,我发现使用GetWindowThreadProcessId
Windows API 方法时存在遇到竞争条件的风险。这是多大的风险?
请允许我提供我正在尝试的背景。我正在用 C# 编写一个计时应用程序供我个人使用。我的意图是在活动窗口发生变化时让应用程序检测(通过 Win API 调用),以便我可以记录正在使用的应用程序的时间。我已经找到了检测活动窗口何时更改的代码;现在我正在尝试确定与该窗口关联的进程。我在 SO 上找到了几篇指向GetWindowThreadProcessId
解决方案的帖子,但正如我所提到的,使用它似乎存在潜在问题。如果GetWindowThreadProcessId
这不是一个安全的方法,那么我愿意接受其他选择。
我希望将代码完全保留在 C# 中,但我并不(完全)反对在必要时将部分代码移到 C/C++ 中。
谢谢!