Visual studio 2012 System::Threading命名空间中缺少ReaderWriterLockSlim与C++/CLI 我最近安装了VisualStudio 2012,并尝试重新编译一个现有的项目,该项目是一个混合模式C++应用程序,其中有一个小的C++/CLI,用于访问应用程序所需的.NET程序集。

Visual studio 2012 System::Threading命名空间中缺少ReaderWriterLockSlim与C++/CLI 我最近安装了VisualStudio 2012,并尝试重新编译一个现有的项目,该项目是一个混合模式C++应用程序,其中有一个小的C++/CLI,用于访问应用程序所需的.NET程序集。,visual-studio-2012,c++-cli,readerwriterlockslim,Visual Studio 2012,C++ Cli,Readerwriterlockslim,C++/CLI实现的一部分使用ReaderWriterLockSlim类来保护多线程对字典的访问 这一切都可以在VS2010中编译并正常工作。但是,升级到VS0212和.Net 4.5后,项目现在无法编译,因为它在System::Threading命名空间中找不到ReaderWriterLockSlim 我相当肯定安装是好的,因为我可以创建一个新的C#项目并使用ReaderWriterLockSlim而没有任何问题 下面显示的一个新C++项目也失败了。我在这里或谷歌上都找不到有人故意删除C++/

C++/CLI实现的一部分使用ReaderWriterLockSlim类来保护多线程对字典的访问

这一切都可以在VS2010中编译并正常工作。但是,升级到VS0212和.Net 4.5后,项目现在无法编译,因为它在System::Threading命名空间中找不到ReaderWriterLockSlim

我相当肯定安装是好的,因为我可以创建一个新的C#项目并使用ReaderWriterLockSlim而没有任何问题

下面显示的一个新C++项目也失败了。我在这里或谷歌上都找不到有人故意删除C++/CLI用户对此类的任何引用。还有其他人有过类似的经历吗

#include "stdafx.h"
using namespace System::Threading;

int _tmain(int argc, _TCHAR* argv[])
{
    ReaderWriterLockSlim^ rwlock = gcnew ReaderWriterLockSlim();

    return 0;
}

当你遇到这样的问题时,一定要注意上课的时间。在本文顶部,它向您展示了使用该类所需的引用程序集:

程序集:System.Core(在System.Core.dll中)


默认情况下,它不包括在C++/CLI项目模板中。用Project+属性、公共属性、框架和引用修复此问题。查看“参考资料”列表。单击AddNewReference按钮,并在Assemblys+Framework列表中勾选System.Core。

遇到此类问题时,请务必注意类的。在本文顶部,它向您展示了使用该类所需的引用程序集:

程序集:System.Core(在System.Core.dll中)


默认情况下,它不包括在C++/CLI项目模板中。用Project+属性、公共属性、框架和引用修复此问题。查看“参考资料”列表。点击“添加新引用”按钮和TIKE.SCORE。从程序集+框架列表。

您说,您在C++项目上获得了这个错误,您将其转换为C++/CLI。如果从头开始创建C++/CLI项目会发生什么?你说你在C++项目上得到这个错误,C++转换为C++/CLI。如果从头开始创建C++/CLI项目会发生什么情况?谢谢,这解决了问题。从未想过要检查,因为ReaderWriterLock可用,但ReaderWriterLockSlim不可用。原来ReaderWriterLock在mscorelib.dll中。谢谢!最新的文档在System.Threading.dll程序集中显示了它,据我所知,它实际上并不存在,至少在.NET 4.6中是这样。请注意版本(左上组合)。挑一个合适的。谢谢,这解决了问题。从未想过要检查,因为ReaderWriterLock可用,但ReaderWriterLockSlim不可用。原来ReaderWriterLock在mscorelib.dll中。谢谢!最新的文档在System.Threading.dll程序集中显示了它,据我所知,它实际上并不存在,至少在.NET 4.6中是这样。请注意版本(左上组合)。挑一个合适的。