私は擬似コードでこのようなものを動作させるアプリケーションを持っています:
DisplayPrettyUI()
DoABunchOfReportingWorkThatAllocatesHundredsOfMB()
GC.Collect() //Free up the memory used in generating the report
DisplayReport()
コレクトコールを完全に取り除くことはできません。そうすると、レポートを表示するためのUIコンポーネントのみをホストするアプリにもかかわらず、レポートが生成された後、プロセスが1GBを超えるメモリを保持するためです。時間。同時に、Collectへの呼び出しは「臭い」のようです。そして、そこに行かずにこのケースを処理する何らかの方法がなければならないようです。
この匂いを取り除くことは可能ですか?(これを解決するためにAppDomainのようなものへの言及を聞いたことがありますが、これまでAppDomainを使用したことがなく、ガベージコレクターに対してどのようなセマンティクスがあるのか本当にわかりません...)