Я видел подобные ошибки здесь, но не могу определить, что вызывает его.Ошибка ReportAvOnComRelease с маршалом.Release()
У меня есть IntPtr
, который ссылается на GetForegroundWindow()
объект:
IntPtr ptr = GetForegroundWindow();
Этот GetForegroundWindow()
метод как таковой:
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
Это, в свою очередь, используется для установления GetExecutablePath()
метод:
string name = GetExecutablePath(ptr);
После такого времени я звоню пресловутый Marshal.Release()
Marshal.Release(ptr);
После чего я получаю следующее сообщение об ошибке:
Managed DEBUGGING Помощника 'ReportAvOnComRelease' обнаружил
Некоторые больше информации включает в себя :
Дополнительная информация: An e xception был пойман, но обработан при выпуске указателя интерфейса COM через Marshal.Release, Marshal.ReleaseComObject или неявно после того, как соответствующий RuntimeCallableWrapper был собран мусором. Это результат ошибки пользователя refcount или другой проблемы с выпуском COM-объекта. Убедитесь, что refcounts управляются должным образом. Хотя эти типы исключений попадают в CLR, они все равно могут привести к коррупции и потере данных, поэтому, если возможно, следует устранить проблему, вызывающую исключение.
Для меня это предполагает, что существует очень высокая вероятность утечка памяти или повреждение указателя.
Я, похоже, не могу установить причину, поскольку вы можете видеть из чрезвычайно простого и простого использования.
Любые предложения по отладке и/или устранению этой проблемы?
* Facepalm * - Спасибо .. (Мозг ненавидит пятницы) – Pogrindis