私は現在、C dllのラッパークラスで静的デリゲートを使用して、安全でない関数を指すデリゲートがガベージで収集されないようにしています。
これは、クラスの複数のインスタンスをサポートする必要があるまでは正常に機能していました。回避策は静的デリゲートのリストを保持することかもしれませんが、もっと簡単な解決策を見つけたいと思います。
質問する
1670 次
2 に答える
3
オブジェクトが収集されないようにするには、オブジェクトへの参照を維持する必要があります。
静的クラスの静的メンバーは、アプリケーションの存続期間中存続します。
たとえば、クラスメンバーは、クラスの設計とプロジェクトの設計に応じて、さまざまなアプローチを取ることができます。静的リストを維持することは悪い考えではないかもしれません。
私の唯一の質問は、代理人が集められていることをどのように理解できるかということです。なぜなら、あなたがそれにアクセスすることができれば、あなたはそれの参照を維持しているに違いないからです。その場合、それはメモリに残っている必要があります。
于 2011-01-28T08:37:39.417 に答える
1
間違いを犯したと思います。静的変数はアプリケーションのライフサイクル全体に存在し、アプリの実行中にGCされることはありません。
于 2011-01-28T08:34:43.110 に答える