Я использую сборки взаимодействия MS Office для создания надстройки Powerpoint, которая вставляет слайды и диаграммы на лету.Но во время вставки процесс вставки слайда в вставку диаграммы занимает до 20 секунд.
После тщательного ведения журнала я заметил несколько строк кода, в которых наше приложение зависло на 20+ секунд.Вот эти строки:
powerpointChartObj.SetSourceData(Source:=String.Format("=Sheet1!A1:B{0}", 5))
powerpointSlideObject.Shapes("some shape name")
Мы постоянно играем с диаграммой PowerPoint и объектами слайдов во время процесса вставки слайдов, но некоторое время он блокируется на одной из вышеуказанных строк.И это случайно, на какой линии он заблокирован.
Ниже перечислены используемые нами офисные библиотеки:
- Библиотека объектов Microsoft Office 16.0
- Библиотека объектов Microsoft Excel 16.0
- Библиотека объектов Microsoft Graph 16.0
- Библиотека объектов Microsoft PowerPoint 16.0
- Библиотека объектов Microsoft Word 16.0
- Microsoft.Office.Tools.dll
- Microsoft.Office.Tools.Common.dll
- Microsoft.Office.Tools.Common.v4.0.Utilities.dll
- Microsoft.Office.Tools.v4.0.Framework.dll
- Microsoft.Vbe.Interop
Тест Environemnt
Office 2016
Windows 8.1 + Windows 10
16 ГБ ОЗУ, процессор Intel Core i5-4570
Любое решение или обходной путь будут высоко оценены.
PS.Также пытался использовать библиотеки объектов Office 15.0
Обновлено
Я пробовал EnableEvents и установил его навсегда false.Это повышает производительность во время сценариев вставки / обновления диаграмм, но если мы постоянно обращаемся к компонентам PowerPoint COM (например, фигурам, слайдам и т. Д. Для манипулирования объектами PowerPoint), PowerPoint снова зависает примерно на 20 секунд.Не уверен, что есть что-то похожее на EnableEvents, доступное во взаимодействии PowerPoint.