Causas comunes de: errores de infracción de acceso en .NET

Estoy buscando causas comunes de errores de Infracción de acceso en .NET.

Cosas que he verificado hasta ahora -

Call Dispose en todos los objetos que implementan IDisposableCompruebe argumentos válidos en llamadas a objetos COMExplícitamente elimine todos los controladores de eventos agregados manualmente NO explícitamente llame a GC.Collect / GC.WaitForPendingFinalizersAgregar yRetira presión de memoria cuando se trata de objetos nativos (mapa de bits, etc.) Adiciona)Verifique todas las llamadas PInvoke para tipos de argumentos válidos Asegure el uso adecuado de IntPtr, SafeHandle y HandleRef Thhreading (Thread Safe, Reentrant funciones), uso adecuado de los controles de espera. Adiciona)a aplicación @Ensure y las DLL se dirigen a la misma plataforma (x86 o x64) (la aplicación y las DLL deben apuntar a la misma plataforma que los objetos COM) Adiciona)

¿Cualquier otra sugerencia

Edita - Se movió el análisis de volcado de memoria a una pregunta diferente.