Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>То сборщик мусора между п1 и п2 вполне может решить, что конструируемый объект (this) больше не достижим, и инициирует его освобождение (то есть — освобождение блока памяти ресурса). И, в результате, Marshal.WriteInt32 тупо испортит память?
Да. Если кратко, то можно сделать GC.KeepAlive(this.handle). Если подробно, то есть статья про Disposable Design Principle vs Microsoft IDisposable code pattern:
http://www.codeproject.com/KB/dotnet/idisposable.aspx.