问题标签 [redlock.net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 关于使用 RedLockFactory.CreateLockAsync() 的超级基本问题
下面的伪代码可能有点太简单了,但这更像是一个普遍的问题
我怎么知道在doWorkWhileLockIsOn()
锁超出范围之前在异步方法中完成的工作已经完成?
此外,如果该CreateLockAsync()
方法是可等待的,我怎么知道在我开始运行时我有锁doWorkWhileLockIsOn()
?
如果我Wait()
从事这些任务,那么使用异步有什么意义呢?
我敢肯定有一些简单的东西我没有得到,因为这看起来非常基本。后台是否发生了一些神奇的状态机,因为在调试器中运行这种代码向我展示了这将无法正常工作。
感谢您的任何建议。
为了提供更多背景知识,我正在努力使一些旧TransactionScope
代码变得异步,并且我遇到了关于在TransactionScope
与创建它的线程不同的线程上进行处理的运行时错误。代码的结构几乎与我上面的 redlock 示例相同,这让我很担心。
如何在可取消的异步/等待中处理 TransactionScope?
您可以在那里看到有一个特殊的构造函数参数,它似乎可以解决问题。所以我在“为什么?” 考虑所有这些并想知道 RedLock 会发生什么的阶段。