1.为啥板卡要继承 public abstract class CardControlBase : IDisposable回收这个接口,C#不是自己内部会有回收机制吗?
答:垃圾回收只回收托管内存,不管硬件句柄、文件、网络连接这类资源,而且回收时机不确定。IDisposable 是让你立刻、确定地关掉这些资源的约定。

Close() → ImplementCloseCard():关掉板卡。GC 不知道这块卡还开着,也不会去关它。对象被回收时,板卡可能仍然占着驱动和总线。
把事件置空:订阅者会把这个对象留在内存里。不手动摘掉,GC 可能一直收不掉它。
时机:GC 什么时候跑由运行时决定,可能是几秒后,也可能是进程退出时。控制卡必须在你指定的时刻关闭,不能等"以后某次回收"。