Нужно ли внедрить класс обертки, вызывая компонент COM через C# для реализации шаблона удаления?

StackOverflow https://stackoverflow.com/questions/1559227

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть класс, написанный в C#, который действует как обертка вокруг компонента COM. Компонент COM рано связан, и RCW был сгенерирован Visual Studio. Должен ли я реализовать рисунок утилизации в своем классе обертки, чтобы очистить ссылку на COM, или я должен просто позволить GC обрабатывать его, так как у него уже есть RCW?

Это было полезно?

Решение

Есть редко необходимость Для реализации распоряжения, но часто есть веские причины для этого.

Если объект COM представляет собой значительный ресурс, который необходимо быстро выпустить, то это может быть хорошей причиной для реализации.

В вашем методе распоряжения вы можете сделать:-

 System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);

Следовательно, утилизация вашего класса немедленно выпустит объект COM.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top