0

私は EE4 を使用しており、呼び出すたびに_deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(picBox, picBox.Handle));メモリ使用量が約 60 MB 増加します。問題は、フォームを閉じてすべてのリソースを破棄する_job_devicesource、システムがメモリを解放しないことです...CG.collect();システムを呼び出しても、まだ何かを実行している60MBを使用しています。フォームを何度か呼び出そうとすると、問題はさらに悪化します。メモリ使用率が継続的に増加するため、ある時点でメモリ不足エラーが発生します。なにか提案を?SDK サンプルを確認しましたが、いずれの場合も問題は解決しません。だから私の質問は: これはバグですか?

4

2 に答える 2

0

今日も同じ問題に遭遇しました。具体的には、電話source.PreviewWindow.Dispose()する前に電話する必要があることがわかりましたjob.RemoveDeviceSource(source):

// The order in which we remove, dispose, and set null is very important. 
// Anything less creates a huge memory leak.
// 1st Stop Encoding
job.StopEncoding();

// 2nd, Must Dispose the Preview Window 
// Before Calling Job.RemoveDeviceSource << Absolutely
source.PreviewWindow.Dispose();
source.PreviewWindow = null;

// 3rd, Remove the Source
job.RemoveDeviceSource(source);

// 4th, Dispose the Source
source.Dispose();
source = null;

// 5th, Dispose the Job
job.Dispose();
job = null;
于 2013-12-22T12:41:51.857 に答える