我有一个需要同步访问的方法,只能允许一个线程同时通过。以下是我的目前实现:
private Boolean m_NoNeedToProceed;
private Object m_SynchronizationObject = new Object();
public void MyMethod()
{
lock (m_SynchronizationObject)
{
if (m_NoNeedToProceed)
return;
现在我正在考虑对其进行一些修改,如下所示:
private Boolean m_NoNeedToProceed;
private Object m_SynchronizationObject = new Object();
public void MyMethod()
{
if (m_NoNeedToProceed)
return;
lock (m_SynchronizationObject)
{
在加锁之前进行快速返回是否更好,以便调用线程可以在等待上一个方法调用完成之前继续进行?
m_NoNeedToProceed
可以在哪里设置? - Grant Thomasbool、char、byte、sbyte、short、ushort、uint、int、float、引用类型
是原子性的。因此,读/写 bool 是安全的。 - I4V