问题描述
我正在更新仅使用TCriticalSection.Acquire/Release
对而不是Enter/Release or Leave
对的Delphi(Delphi 2009)代码。我的问题是-Acquire
和Enter
有什么区别?
Delphi文档非常模糊-它甚至试图说没有区别:
获取:将关键部分绑定到调用线程。呼叫 获得阻止所有其他线程获得此关键 直到调用Release或Leave方法。获取执行 与Enter方法相同。
Enter:在调用线程进入 线程敏感部分。调用Enter阻止其他所有线程 输入此关键部分保护的代码,直到请假或 释放方法被调用。 Enter调用Acquire方法来绑定 调用线程的关键部分。
我想使用方法TryAcquire
,但是没有这样的方法,因此-我正在考虑将我对Acquire
的所有调用替换为TryEnter... Sleep...
循环,该循环是有界的通过TryEnter调用次数的数量。但是要确定会发生什么,我应该知道Acquire
和Enter
之间的区别吗?这有什么区别?为什么要使用两种不同的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)