public void Dispose() {
_safeHandle.Dispose();
// Clean up all registered callbacks for this instance
lock (_registeredCallbacks) {
var keys = _registeredCallbacks.Keys.ToList();
foreach (var key in keys) {
var handle = _registeredCallbacks[key];
handle.Free();
_registeredCallbacks.Remove(key);
}
}
}