2

我正在尝试调试用 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 属性。

4

1 回答 1

0

C++/CX 不针对 .NET。您不能直接从 C++/CX 代码使用 .NET Framework。

您可以使用 Windows API 函数GetCurrentThreadId来获取当前线程标识符。

于 2013-01-23T17:54:26.777 回答