2010-05-03 3 views
1

Я написал небольшой .NET add in для excel 2007, который считывает данные из внешнего C++ api и отображает его внутри excel.
Диспетчер задач показывает, что я испытываю утечку памяти (использование памяти набирает линейно до 250 МБ после того, как оно выдало «Excel не может выполнить эту задачу с ошибкой доступных ресурсов»), но проблема исчезает, как только я минимизирую окно excel.

api использует делегаты для возврата данных, и я обновляю его в словаре. другой поток обновляет excel из словаря каждую секунду.Взрыв памяти надстройки Excel

Вряд ли неуправляемый код отвечает за утечку.

Есть ли у кого-нибудь идеи, что может вызвать это?

10x!

+0

Как вы считаете, что использование памяти связано с утечкой памяти? Если бы было такое, почему бы это остановить на 250 МБ? И минимизация окна не устраняет утечки. –

+0

Я останавливаюсь после 250 МБ, потому что excel дает мне «не может завершить операцию с доступными ресурсами». – tsinik

+1

Вы на XP? Диспетчер задач показывает только рабочий набор, который снижается ОС при минимизации главного окна приложения. Я бы предложил использовать Process Explorer для просмотра частных байтов. См. Также http://channel9.msdn.com/forums/TechOff/454007-Minimize-Window-Drop-its-Mem-Usage/ –

ответ

0

Я нашел проблему. Я обновлял ячейки, установив свойство Formula, у которого больше времени. Превосходительству не удалось успеть все обновления вовремя, и стек растет. После того, как я изменил способ обновления ячеек до значения set_value, он стал ОК.

Спасибо всем.

Смежные вопросы