.NET Compact Framework のアプリケーション ドメイン
更新 : 2007 年 11 月
すべての .NET Compact Framework アプリケーションは、アプリケーション ドメインと呼ばれるランタイムのコンストラクトの内部で実行されます。アプリケーション ドメインは、オペレーティング システムのプロセスに似ています。.NET Compact Framework では、アプリケーションの終了時に、実行中にアプリケーションによって使用されたすべてのマネージ リソースが解放され、ホスト オペレーティング システムに返されます。
アプリケーション ドメインは、基底にあるホスト オペレーティング システムのサポートを必要とせずに、障害を特定し、保全性を向上し、セキュリティを提供するなど、プロセスの多くの利点をもたらします。アプリケーション ドメイン ホストは、共通言語ランタイムのインスタンスを開始します。アプリケーション ドメイン ホスト自体は、ネイティブ オペレーティング システム コードです。共通言語ランタイムは、アプリケーション ドメイン ホストに静的または動的にリンクできます。
.NET Compact Framework は、アプリケーション ドメイン ホストの動作に制限を加えません。アプリケーション ドメイン ホストは、プログラムの起動と停止に使用される既存の対話型シェルの簡単な拡張機能として使用できます。Windows のような動的なアプリケーション システムで、アプリケーション ドメイン ホストをアプリケーション ローダーの拡張機能として使用すると、ネイティブ アプリケーションと同じ機構を使用して .NET Compact Framework アプリケーションを起動および停止できます。
複数のアプリケーション ドメイン
.NET Compact Framework は、複数のアプリケーション ドメインをサポートします。クラスのコンストラクタで、アセンブリを指定できます。その後、CreateDomain メソッドを使用して、新しいアプリケーション ドメインを開始できます。新しいアプリケーション ドメインには、共通言語ランタイム DLL、データ構造、およびメモリ プールの独自のコピーが読み込まれます。複数のアプリケーション ドメインが 1 つのオペレーティング システム プロセス内に存在できます。
メモ : |
---|
.NET Compact Framework では、複数のアプリケーション ドメインで使用できるようにドメインに中立的なコード領域にアセンブリを読み込むことがサポートされていません。 |
.NET Compact Framework は、ガベージ コレクションを実行する時期を判断します。ガベージ コレクションは、単一のアプリケーション ドメインまたはすべてのアプリケーション ドメインで発生します。これにより、1 つのアプリケーション ドメインがメモリを使いすぎて、他のアプリケーション ドメインがその犠牲になることを防止します。