-1

我的 Dev-PC 有以下内容: WindowsServer2008 + VS2010 + .NET4.0

我的问题: {“试图读取或写入受保护的内存。这通常表明其他内存已损坏。”}

我做了什么: 我做了一个COM组件,并用C++/CLI为它做了一个包装器,然后用C#来访问。在我的C#代码中,主线程初始化COM环境,几个子线程使用主线程分配的资源。但是如果主线程退出而没有加入等待子线程结束,我会遇到显示“尝试读取或写入受保护的内存。这通常表明其他内存已损坏”的问题。即使我使用 try catch(...) 来包装引发异常的位置,也会发生这种情况。我真的很怀疑为什么会发生这种情况......

4

1 回答 1

0

该消息表明您遇到了真正的问题。有很多很多很多不同的事情可能导致它 - 您需要查看(所有)可能涉及的非托管代码。

建议:

一个不太明显的根本原因可能是未能清理分配的资源:

你确定你正在优雅地释放你分配的所有东西吗?

PS:为什么没有Join()退出主线程?

于 2012-09-19T01:07:08.593 回答