質問

Compact Frameworkアプリケーションでは、ガベージコレクターがスレッドの少なくとも1つを無条件に停止しないようにすること、またはコードの少なくとも一部でGC収集をブロックすることは可能ですか?

リアルタイムの優先度の設定に対処する必要があると思いますが、それに対して多くのアドバイスを見つけました。

役に立ちましたか?

解決

GCは、すべてのオブジェクトを検査するために、すべてのスレッドをフリーズする必要があります。スレッドが実行されていて、オブジェクトを変更/作成している場合、どのように機能しますか?

やらないほうがいい。

やることができるのは、中断したくない状態になる前にGC.Collect()とGC.WaitForPendingFinalizers()を呼び出すことです。これにより、時間がかかります。

他のヒント

アンマネージコードは、固定されていないマネージオブジェクトにアクセスできませんが、ガベージコレクション中にブロックされることなく実行されます。ガベージコレクション中に実行を継続する必要がある特定のルーチンがあり、固定されていないマネージオブジェクトへのアクセスを必要としない場合、それらのルーチンをアンマネージコードで記述してもGCは影響しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top