0

「アプリケーションドメインによって提供される分離には、次の利点があります。

あるアプリケーションの障害が他のアプリケーションに影響を与えることはありません。タイプセーフコードはメモリ障害を引き起こす可能性がないため、アプリケーションドメインを使用すると、あるドメインで実行されているコードがプロセス内の他のアプリケーションに影響を与えることがなくなります。 "## http://msdn.microsoft.com/en-us/library/2bh4z9hs.aspx

上記の単語はMSDNから取得したものです。

私の質問は、

1、文中の「障害」は例外、または何か他のものを指しますか?

2、「1つのアプリケーションの障害が他のアプリケーションに影響を与えることはできない」とはどういう意味ですか?1つのアプリケーションドメインで例外がスローされた場合、その例外が他のアプリケーションドメインをクラッシュさせないことを意味しますか?例を挙げていただけますか?

4

1 に答える 1

0

この記事では、メモリの分離について説明しています。マネージコードは、C / C ++とは異なり、メモリを(なしで)アービトレーションで変更できないためunsafe、1つのAppDomainで実行されているマネージコードは、他のAppDomainのメモリを破壊しません。つまり、バッファオーバーフローの種類のエラーは、マネージドランタイムによって防止されますが、C /C++では簡単に実現できますint arr[4]; arr[-1]=2;

例外のスコープはAppDomainではありません(またはAppDomainの有無にかかわらず同様に動作します)-ほとんどの例外は、例外をスローするメソッドを呼び出したコードにのみ影響し、一部(つまり、StackOverflow)はデフォルトでプロセスを終了します。通常の例外が処理されない場合、通常はプロセスが終了します。スタック上のコードが複数のAppDomainに属する場合、例外はAppDomainの境界を自由に越えることができます。

于 2012-10-08T06:32:59.067 に答える