我正在尝试调试用 C++ 编写的 Windows (Metro) Store 应用程序中的几个线程之间的死锁,让每个线程在不同点存储它的 ID 会很有帮助,这样我就可以找出每个其他块线程中的哪个线程正在等待。
.NET for Windows Store 应用程序概述说要使用System 命名空间中的Environment::CurrentManagedThreadId来访问线程。我原以为我可以简单地写:
int threadId = System::Environment::CurrentManagedThreadId;
但是,当我尝试编译 cpp 文件时,Visual Studio 2012 抱怨“'System':不是类或命名空间名称”。
我是否缺少定义系统命名空间的头文件?我没有看到 System.Environment 或 Environment.CurrentManagedThreadId 网页中列出的任何头文件。
FWIW,Visual Studio 2012 中的对象浏览器向我显示 System.Environment 对象,并且对象浏览器显示它应该具有 CurrentManagedThreadId 属性。