Я использую библиотеку C #, которая действует как оболочка для неуправляемой библиотеки.Эта библиотека опирается на P / Invoke.
Я испытываю что-то странное: в моем приложении WinForms у меня есть кнопка, которая, нажимая, выполняет итерацию от 1 до N и на каждой итерации выполняетвызов этой библиотеки.
Каждый раз, когда я нажимаю кнопку (не закрывая приложение), время для вызова метода из функции постоянно для первой итерации (около половины секунды), но для остальных, она сильно варьируется, варьируется от этой полсекунды до примерно 2 минут.
Работа в каждой итерации несколько одинакова, поэтому она не понятна.
Я заметил, что этоЗамедление происходит, когда библиотека вызывает неуправляемую функцию.
Есть идеи о том, что это может быть и как я могу улучшить это?
Заранее спасибо!
-edit- Примечаниечто каждый раз, когда я нажимаю кнопку снова, первая итерация цикла выполняется быстро, но объект, который я вызываю, уже инициализирован (это глобальная статическая переменная)!
-edit2-До сих пор мне удалось решить эту проблему, выполнив все вызовы неуправляемой функции из выделенного потока.Тем не менее, я до сих пор не понял, почему основной поток GUI не смог обработать его (не было других потоков, выполняющих вызовы).