我正在寻找 .NET 下访问冲突错误的常见原因。
到目前为止我检查过的东西 -
- 对所有实现 IDisposable 的对象调用 Dispose
- 检查对 COM 对象的调用中的有效参数
- 显式删除所有手动添加的事件处理程序
- 不要明确调用 GC.Collect/GC.WaitForPendingFinalizers
- 处理本机对象(位图等)时添加和删除内存压力(已添加)
- 验证有效参数类型的所有 PInvoke 调用
- 确保正确使用 IntPtr、SafeHandle 和 HandleRef
- 线程(线程安全,可重入函数),正确使用等待句柄。(已添加)
- 确保应用程序和 DLL 都针对相同的平台(x86 或 x64)(应用程序和 dll 的目标应与 COM 对象相同。)(已添加)
还有其他建议吗?
编辑- 将故障转储分析移至不同的问题。