在发出 SqliteConnection BeginTransaction() 调用后,我想知道 Reserve Lock 是否参与并开始阻止写入?
Reserve Lock 是否对应于实际的 BeginTransaction 调用,还是仅在调用 Commit 并且事务运行之后?
我问 b/c,为了利用我现有的数据访问层,并且每次我需要一个来防止竞争条件时都不必编写自定义事务,我不想调用 BeginTransaction(),然后调用任何组合现有的 Select/Insert/Update 包装器来解决手头的问题,同时拥有独占写入访问权限,然后最终调用 Commit。为了防止我试图避免的竞争条件,我会要求事务上的保留锁在调用 BeginTransaction 时“立即”处于活动状态(即,在它返回之前的某个时间)。
如果需要更多说明或详细信息,请告诉我,我很乐意提供。谢谢你的专业知识。