Search Results

Search found 1 results on 1 pages for 'jalalaldeen'.

Page 1/1 | 1 

  • Memory Barrier by lock statement

    - by jalalaldeen
    I read recently about memory barrier and the reordaring issue and now I have some confusion about it. Let us have a following senario: private object _object1 = null; private object _object2 = null; private bool _usingObject1 = false; private object MyObject { get { if (_usingObject1) { return _object1; } else { return _object2; } } set { if (_usingObject1) { _object1 = value; } else { _object2 = value; } } } private void Update() { _usingMethod1 = true; SomeProperty = FooMethod(); //.. _usingMethod1 = false; } 1- At Update method; is it always _usingMethod1 = true statement excecuted before getting or setting the property? or due reordaring issue we can not garantee that? 2- Should we use volitle like. private volitle bool _usingMethod1 = false; 3- If we use lock; can we garantee then every statement within the lock will be excecuted in order like: private void FooMethod() { object locker = new object(); lock (locker) { x = 1; y = a; i++; } } Thanks in advanced..

    Read the article

1