Я использую D3DImage с SlimDX.
Я создал класс с именем D3DImageSource, который наследует D3DImage и создает SlimDX.D3D9.Surface в своем ctor. Поверхность также назначена D3DImage в ctor.
D3DImageSource реализует IDisposable и удаляет внутреннюю поверхность при вызове.
Всякий раз, когда я изменяю размер своего окна WPF, я создаю новый D3DImageSource с новым размером окна и избавляюсь от старого. Несмотря на то, что я располагаю внутренней поверхностью в это время, она все еще съедает ОЧЕНЬ много памяти. Кажется, что D3DImage содержит некоторый внутренний буфер, который не освобождается должным образом, и, похоже, в D3DImage нет метода Dispose.
Кто-нибудь еще испытывал что-то подобное?
Я использую Win7x64, VS2010, .NET4, SlimDX x86.