title: Is it appropriate to use GC.AddMemoryPressure to trigger more frequent Runtime Callable Wrapper (RCW) finalization?
body: <p>My .NET application is using very high numbers of RCWs in a very short period of time (thousands of RCWs in less than a second). I am able to gauge this behavior with the following performance counters:
   - Process -> Handle Count
   - .NET CLR Memory -> # of Sink Blocks in use</p>
  
  <p>We have correctly implemented IDisposable wrapper objects around the RCWs; we call Marshal.FinalReleaseComObject on the various RCWs, and in the appropriate order.</p>
  
  <p>According to <a href="http://dotnetdebug.net/2005/09/10/runtime-callable-wrapper-internals-and-common-pitfalls/" rel="nofollow">this blog post</a>, the COM object underlying an RCW is not actually cleaned up until the RCW is finalized.</p>
  
  <p>Is it appropriate to use GC.AddMemoryPressure to force the GC to clean up our RCWs more quickly to prevent out of memory errors?</p>