VSTO 4.0 Excel 2007 Надстройка, вызывающая утечки памяти в Windows 7 - PullRequest
1 голос
/ 24 сентября 2010

У нас есть надстройка VSTO 4.0 для Excel 2007, которая, похоже, имеет проблемы с утечками памяти, но только с некоторыми документами и только в Windows 7. Поведение аналогично проблеме с прокси-сервером LCID, которая предположительно была исправлена ​​в VSTO 4.Объем памяти увеличивается примерно на 1,2–1,5 ГБ, а затем выдается исключение OutOfMemory.Кажется, что это происходит, только когда я пытаюсь открыть определенные документы при работе в Windows 7. Если я открываю те же документы в XP, определенная память увеличивается, но я не получаю исключения.По сути, я получаю различные исключения и никогда в одном и том же месте дважды:

----- Источник: System.Windows.Forms -----

System.OutOfMemoryException: исключение типаВыдано «System.OutOfMemoryException».

в System.Windows.Forms.Screen.FromRectangle (прямоугольник прямоугольник)

в System.Windows.Forms.Screen.GetWorkingArea (прямоугольник прямоугольник)

в System.Windows.Forms.WindowsFormsUtils.ConstrainToScreenWorkingAreaBounds (границы прямоугольника)

в System.Windows.Forms.ToolStripDropDown.GetDropDownBounds (прямоугольник предложил Bounds)

для Windows..ToolStripDropDown.SetBoundsCore (Int32 x, Int32 y, ширина Int32, высота Int32, указано BoundsSpecified)

в System.Windows.Forms.Control.SetBounds (Int32 x, Int32 y, ширина Int32, высота Int32, BoundsSpecifiedуказано)

в System.Windows.Forms.Control.set_Size (значение размера)

в System.Windows.Forms.ToolStripDropDown.AdjustSize ()

в System.Windows.Forms.ToolStripDropDown.OnLayout (LayoutEventArgs e)

в System.Windows.Forms.ToolStripDropDownMenu.)

в System.Windows.Forms.Control.System.Windows.Forms.Layout.IArrangedElement.PerformLayout (IArrangedElement disabledElement, String disabledProperty)

в System.Windows.Forms.Layout.LayoutTransaction.DoLayout (IArrangedElement elementToLayout, IArrangedElement elementCausingLayout, свойство String)

в System.Windows.Forms.ToolStripItem.InvalidateItemLayout (String disabledProperty)

в System.Windows.Forms.ToolStripItem.OnRightToLeftChanged (EventArgs e)

в System.Windows.Forms.ToolStripDropDownItem.OnArg0eg 1040LegTegLegTegTegTegTh0e0e0e0e0j0e0e0e0e0e0e0ejTejLTe0LeTejTegTejTegTejTegToTeRTLTeRTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT0H0R0ehd.* в System.Windows.Forms.ToolStripItem.OnOwnerCзависает (EventArgs e)

в System.Windows.Forms.ToolStripMenuItem.OnOwnerChanged (EventArgs e)

в System.Windows.Forms.ToolStripItem.SetOwner (ToolStrip newOwner)

1046* в System.Windows.Forms.ToolStripItemCollection.SetOwner (элемент ToolStripItem)

в System.Windows.Forms.ToolStripItemCollection.Add (значение ToolStripItem)

в Hcg.Stinger.Report.Than.ShadowRangeNodeEventBehavior.AddDynamicLabelMenu () в C: \ Serenity6.x \ Source \ Hcg \ Stinger \ Report \ ShadowRangeTree \ ShadowRangeNodeEventBehavior.cs: строка 135

Вот еще один: * 1053-

1054 *1054*Источник: System.Windows.Forms -----

System.OutOfMemoryException: было сгенерировано исключение типа 'System.OutOfMemoryException'.

в System.Windows.Forms.ToolStripManager.ProcessShortcut (Сообщение & m, сочетание клавиш)

в System.Windows.Forms.ToolStripManager.ProcessCmdKey (Сообщение & m, ключи ключа)

в System.Windows.Forms.ContainerControl.ProcessCmdKey (Message & msg, ключи keyData)

в System.Windows.Forms.Form.ProcessCmdKey (сообщение & msg, ключи ключа Keys)

в System.Windows.Forms.Control.ProcessCmdKey (сообщение & msg, ключиkeyData)

в System.Windows.Forms.Control.ProcessCmdKey (Message & msg, ключи keyData)

в System.Windows.Forms.TextBoxBase.ProcessCmdKey (Message & msg, Keys keyData)

в System.Windows.Forms.Control.PreProcessMessage (Message & msg)

в System.Windows.Forms.Control.PreProcessControlMessageInternal (Элемент управления, Message & msg)

в System.Windows.Forms.Application.ThreadContext.PreTranslateMessage (MSG & msg)


Когда я сохраняю документы как отдельные документы и не открываю их с помощью надстройки VSTO, она может открываться с минимальными затратами.объем памяти.Когда я использую надстройку, чтобы открыть их, это происходит, когда все набирает обороты и вылетает.

Любая помощь или указатели относительно того, почему в Windows 7 возникли эти проблемы, будут высоко оценены.

Спасибо,

Эрик

1 Ответ

0 голосов
/ 14 апреля 2011

На самом деле я выяснил, что приложение создает тысячи ToolStripMenuItems для контекстных меню на TreeNodes. Как только я сделал их доступными, он позаботился о проблеме с памятью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...