.net 32位应用程序在32位操作系统上失败,但在64位计算机上工作

.net 32位应用程序在32位操作系统上失败,但在64位计算机上工作,.net,memory,memory-leaks,32bit-64bit,ram,.net,Memory,Memory Leaks,32bit 64bit,Ram,我们有一个32位的.net应用程序,它正在调用一些第三方DLL[c/c++]。 在具有2GB RAM的32位操作系统上,我们在调用dll后连续出现“尝试读取或写入受保护内存”错误。 但是 在具有4GB RAM的64位操作系统上,成功率为50% 在具有4GB RAM的32位操作系统上,成功率为100% 因此,问题似乎是由于内存不足但我们注意到,当应用程序在2GB内存上运行,并且内存仍然可用时,我们正在“尝试读取或写入受保护的内存”。 谁能告诉我,即使内存可用,到底出了什么问题 它解决了空间问题吗我

我们有一个32位的.net应用程序,它正在调用一些第三方DLL[c/c++]。 在具有2GB RAM的32位操作系统上,我们在调用dll后连续出现“尝试读取或写入受保护内存”错误。
但是
在具有4GB RAM的64位操作系统上,成功率为50%
在具有4GB RAM的32位操作系统上,成功率为100%
因此,问题似乎是由于内存不足
但我们注意到,当应用程序在2GB内存上运行,并且内存仍然可用时,我们正在“尝试读取或写入受保护的内存”。
谁能告诉我,即使内存可用,到底出了什么问题

它解决了空间问题吗
我们尝试了LargeAddressware,但遇到了相同的问题。

最后,找出了问题所在。 我的应用程序有一个线程调用第三方c/c++DLL。 如果我删除这个线程并执行相同的代码jn序列,那么它可以在32位上工作。 与.net中的64位相比,32位机器的线程模型似乎有所不同。 最后我们终于修好了,谢谢大家