Delphi TCriticalSection获取与输入-有什么区别?

问题描述

我正在更新仅使用TCriticalSection.Acquire/Release对而不是Enter/Release or Leave对的Delphi(Delphi 2009)代码。我的问题是-AcquireEnter有什么区别?

Delphi文档非常模糊-它甚至试图说没有区别:

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/!!MEMBERTYPE_Methods_SyncObjs_TCriticalSection.html

获取:将关键部分绑定到调用线程。呼叫 获得阻止所有其他线程获得此关键 直到调用Release或Leave方法。获取执行 与Enter方法相同。

Enter:在调用线程进入 线程敏感部分。调用Enter阻止其他所有线程 输入此关键部分保护的代码,直到请假或 释放方法被调用。 Enter调用Acquire方法来绑定 调用线程的关键部分。

我想使用方法TryAcquire,但是没有这样的方法,因此-我正在考虑将我对Acquire的所有调用替换为TryEnter... Sleep...循环,该循环是有界的通过TryEnter调用次数的数量。但是要确定会发生什么,我应该知道AcquireEnter之间的区别吗?这有什么区别?为什么要使用两种不同的方法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)