2

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

リアルタイムの優先順位の設定に対処する必要があると思いますが、そうしないように多くのアドバイスを見つけました.

4

2 に答える 2

3

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

やらないほうがいい。

あなたができることは、中断されたくない状態に入る前に GC.Collect() と GC.WaitForPendingFinalizers() を呼び出すことです。これで少し時間ができます。

于 2008-11-11T22:24:51.583 に答える
0

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

于 2011-03-28T16:49:28.520 に答える