-1

私の Dev-PC には次のものがあります: WindowsServer2008 + VS2010 + .NET4.0

私のトラブル: {"保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。"}

私がしたこと: 1 つの COM コンポーネントを作成し、C++/CLI でそのラッパーを作成してから、C# を使用してアクセスしました。私の C# コードでは、メイン スレッドが COM 環境を初期化し、複数の子スレッドがメイン スレッドによって割り当てられたリソースを使用します。しかし、子スレッドの終了を待機するためにメイン スレッドが Join なしで終了すると、「保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています」という問題が発生します。これは、 try catch(...) を使用して例外がスローされた場所をラップしても発生します。どうしてこうなったのか本当に疑問です…

4

1 に答える 1

0

メッセージは、実際に問題があることを示しています。それを引き起こす可能性のある多くの、多くの、多くの異なるものがあります-あなたは関係しているかもしれないあなたのアンマネージコードの(すべて)を調べる必要があるでしょう。

提案:

それほど明白ではない根本的な原因の1つは、割り当てられたリソースのクリーンアップに失敗している可能性があります。

割り当てたものすべてを優雅に解放してもよろしいですか?

PS:なぜJoin()なしでメインスレッドを終了するのですか?

于 2012-09-19T01:07:08.593 に答える